有沒有區別:$(document)
和$("document")
?
編輯:當進入.ready()
例如$("document").ready()
有沒有區別:$(document)
和$("document")
?
編輯:當進入.ready()
例如$("document").ready()
$(document)
使用jQuery來包裝全局document
對象。
$("document")
嘗試尋找一個<document>
元件,這顯然是沒有意義的HTML,因爲沒有這樣的元素,僅在由<html>
元件的標記表示的根document
對象。它的行爲方式是因爲通過傳遞jQuery函數一個字符串,你實際上給它一個selector。
重新編輯:作爲patrick dw說,在ready()
情況下沒有區別,實際上在jQuery 3.0的使用$(document)
所有或顯式調用ready()
已被棄用。從documentation:
jQuery提供了幾種方法來附加一個函數,該函數將在DOM準備就緒時運行。以下所有的語法是等效的:
$(handler)
$(document).ready(handler)
$("document").ready(handler)
$("img").ready(handler)
$().ready(handler)
在jQuery 3.0,僅建議所述第一語法;其他語法仍然有效,但不推薦使用。這是因爲選擇與
.ready()
方法的行爲沒有關係,這是低效的並且可能導致對方法行爲的錯誤假設。例如,第三種語法與"document"
一起工作,它不選擇任何東西。第四種語法等待文檔準備就緒,但意味着(不正確)它等待圖像準備就緒。
document
document
是一個預製的全局變量,它是當前HTML文檔的表示形式,簡寫爲window.document
。
$("document")
,正如@BoltClock指出的那樣,將使用該字符串作爲<document>
元素的選擇器。
你的第一個例子將在你的JS中搜索一個名爲document的變量或對象。 (請小心,它是一個預定義變量)
第二個將在頁面中搜索名稱爲「document」的標籤。
var document = 'div#logo';
$(document); //will search for div#logo
$('document'); //will search for document
如果你談論調用.ready()
功能,它(目前)沒有什麼區別。
在這兩種情況下,參數都被忽略。
你可以這樣做:
$("cheese pizza").ready(function() {});
要清楚,最好是使用.ready()
正式支持的電話,它們是:
$(document).ready(function(){/*...*/});
和:
$(function(){/*...*/});
當act如果選擇document
,則應使用$(document)
。
非常好的答案是什麼*實際*問題。 +1 – user113716 2011-01-24 19:19:39
那麼$(「html」)和$(document)之間有什麼區別呢? – Andrew 2017-03-14 19:09:43