2011-08-08 102 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函数执行的任何操作都可能会返回一个或多个结果。