jQuery总是返回数组吗?

dpp*_*dpp 14 arrays jquery jquery-selectors

在选择元素时jQuery是否总是返回数组(当然,如果存在至少一个元素)?例:

$('#Myelement')
$('div')
$('tbody')
Run Code Online (Sandbox Code Playgroud)

如果选择器是ID怎么办?如果选择器是一个元素但只有一次出现怎么办?

Guf*_*ffa 14

即使没有与选择器匹配的元素,jQuery函数也总是返回一个jQuery对象(基于数组).

这样你就可以调用一个应该影响找到的元素的方法,即使没有匹配的元素.如果jQuery对象不包含任何元素,它将不执行任何操作.

如果您需要知道jQuery对象是否包含任何元素,则可以使用该length属性.

  • @domanokz:jQuery对象包含元素,它不包含jQuery对象.如果使用`[0]`从jquery对象中获取一个元素,那么它就是一个普通的DOM元素,你不能使用jQuery方法.您可以使用`first`方法将结果限制为第一个元素:`$('td').first().html('hi')`,或者您可以将元素包装在jQuery对象中:`$ ($('td')[0]).html('hi')`(但如果选择器没有找到任何元素,则会导致错误). (3认同)
  • @Guffa:实际上恰恰相反.jQuery Object不是基于数组,它是一个通过添加`.length`和`.splice()来表现"类似数组"的对象. (2认同)