2016-01-21 30 views
1

比方說,我們有:的Javascript JQuery的鏈接

$("p")[0].innerHTML; 

$("p").html(); 

在上面的例子中,我們有同樣的結果。所以我想知道JQuery如何返回節點列表和自身以允許鏈接?

+1

這是因爲jQuery選擇器返回一個對象。然後,您只需調用該對象的屬性,在這種情況下是'html'和'0'。如果你使用console.log($('p'))'',你會看到列出的所有方法。 –

+2

執行'console.log($(「p」));''和'console.log($(「p」)[0]);''''''''' –

+0

http://stackoverflow.com/questions/7475336/how-does-jquery-chaining-work/7475375#7475375 –

回答

2

所以我想知道JQuery如何返回節點列表和自身以允許鏈接?

它沒有。

它只返回自己(它是一個對象)。

該對象有一個名爲0的屬性,它包含元素數組中的第一個元素。它還有一個名爲html的房產,其中包含一項功能。

+0

@TrueBlueAussie - 它[不是數組](http://jsbin.com/fadonu/1 /編輯?JS,控制檯),但即使它是,那又如何?數組(除了空數組)有一個名爲'0'的屬性。一個數組只是一個對象,它從'Array'沿着原型鏈繼承了一些屬性,並被設計爲使用以整數值作爲名稱的屬性來保存數據。 – Quentin

+0

剛剛檢查,你是正確的。那很可愛。它意味着$(「p」)[「0」]。innerHTML'也適用於我剛剛測試過的,是的,它對每個「數組」條目都有一個數字屬性。感謝那個小小的帖子。我的無知已經減輕了+1 :) –

+0

這比我所期待的更神奇。所以如果我理解的很好,每個用選擇器檢索到的元素都被存儲爲一個帶有數字索引的屬性? – user3292788

0

這就是所謂的流利的語法。每個函數都返回給定的對象。像

function f(obj){ 
    doSomething(obj); 
    return obj; 
}