2011-08-08 45 views
12

jQuery在選擇元素時總是返回數組(當然如果至少存在一個元素)?例如:jQuery總是返回數組嗎?

$('#Myelement') 
$('div') 
$('tbody') 

如果選擇器是ID,該怎麼辦? 如果選擇器是一個元素但只有一個發生了什麼呢?

回答

12

即使沒有與選擇器匹配的元素,jQuery函數總是返回一個jQuery對象(即基於數組)。

這樣,即使沒有匹配的元素,您也可以始終調用一個應該影響找到的元素的方法。如果jQuery對象不包含任何元素,它將不會執行任何操作。

如果您需要知道jQuery對象是否包含任何元素,您可以使用length屬性。

+0

在我看來,你的第二個陳述不是一個好的解釋,因爲這不是爲什麼jQuery返回一個數組。這是因爲$()找到匹配給定選擇器的元素,所以你不能期望元素有一些id,但是包含元素的結果包含一些id。 –

+0

@MatíasFidemraizer:第二段不是解釋爲什麼這些方法返回一個數組,這是對你如何使用它的解釋。恐怕我不明白你提供的解釋是什麼意思。 – Guffa

+1

但是,當我做$('td')[0] .html('hi')',它給了我一個例外,它說索引沒有'.html'方法,這意味着數組上的元素返回jQuery不是jQuery對象的一部分。我錯了嗎? – dpp

1

因爲$([selector])就像是元素搜索的$.find([selector])的快捷方式。

由於您在搜索而不是「選擇結果」,因此使用jQuery函數執行的任何操作都可能會返回一個或多個結果。