簡體   English   中英

$(文件)與$(“文件”)

[英]$(document) vs. $(“document”)

$(document)$("document")之間有什么區別嗎?

編輯:也進入.ready()例如$("document").ready()

$(document)使用jQuery來包裝全局document對象。

$("document")試圖尋找一個<document>元素,這在HTML中顯然沒有意義,因為沒有這樣的元素,只有<html>元素在標記中表示的根document對象。 它的行為方式是因為通過傳遞jQuery函數一個字符串,你實際上給它一個選擇器

重新編輯:正如patrick dw所說,在ready()的上下文中沒有區別,實際上從jQuery 3.0開始使用$(document)或顯式調用ready()已被棄用。 文檔

jQuery提供了幾種附加在DOM准備就緒時運行的函數的方法。 以下所有語法都是等效的:

  • $( handler )
  • $( document ).ready( handler )
  • $( "document" ).ready( handler )
  • $( "img" ).ready( handler )
  • $().ready( handler )

從jQuery 3.0開始,建議只使用第一種語法; 其他語法仍然有效但不推薦使用。 這是因為選擇與.ready()方法的行為沒有關系,這是低效的,並且可能導致對方法行為的錯誤假設。 例如,第三種語法適用於"document" ,它不選擇任何內容。 第四種語法等待文檔准備就緒,但暗示(錯誤地)它等待圖像准備就緒。

如果您正在談論調用.ready()函數,它(當前)沒有任何區別。

在這兩種情況下,參數都會被忽略。

你可以這樣做:

$( "cheese pizza" ).ready(function() {});

需要明確的是,最好使用官方支持的.ready()調用,它們是:

$(document).ready(function(){/*...*/});

和:

$(function(){/*...*/});

實際選擇document ,您應該使用$(document)

您的第一個示例將在JS中搜索名為document的變量或對象。 (小心,這是一個預定義的變量)

第二個將在頁面中搜索名為“document”的標簽。

var document = 'div#logo';
$(document); //will search for div#logo
$('document'); //will search for document

document是一個預制的全局變量,它是當前HTML文檔的表示形式,是window.document縮寫。

正如@BoltClock指出的那樣, $("document")將使用該字符串作為<document>元素的選擇器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM