[英]$(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.