【发布时间】:2011-10-22 05:37:32
【问题描述】:
选择元素时jQuery是否总是返回数组(当然如果至少存在一个元素)?示例:
$('#Myelement')
$('div')
$('tbody')
如果选择器是一个 ID 怎么办? 如果选择器是一个元素但只出现一次怎么办?
【问题讨论】:
标签: jquery arrays jquery-selectors
选择元素时jQuery是否总是返回数组(当然如果至少存在一个元素)?示例:
$('#Myelement')
$('div')
$('tbody')
如果选择器是一个 ID 怎么办? 如果选择器是一个元素但只出现一次怎么办?
【问题讨论】:
标签: jquery arrays jquery-selectors
因为$([selector]) 就像$.find([selector]) 的快捷方式,它是一个元素搜索。
使用此类jQuery 函数执行的任何操作都可能返回一个或多个结果,因为您正在搜索而不是“选择结果”。
【讨论】:
jQuery 函数总是返回一个jQuery 对象(基于数组),即使没有与选择器匹配的元素。
这样你总是可以调用一个应该影响找到的元素的方法,即使没有匹配的元素。如果 jQuery 对象不包含任何元素,它就什么也不做。
如果你想知道一个jQuery对象是否包含任何元素,你可以使用length属性。
【讨论】:
$('td')[0].html('hi')时,它给了我一个例外,它说索引没有.html方法,这意味着jQuery返回的数组上的元素不是jQuery对象的一部分。我错了吗?
[0] 从jQUery 对象中获取一个元素,那么它是一个无法使用jQuery 方法的普通DOM 元素。您可以使用first 方法将结果限制为第一个元素:$('td').first().html('hi'),或者您可以将元素包装在一个 jQuery 对象中:$($('td')[0]).html('hi')(但如果选择器找不到任何元素,则会导致错误)。
.length 和 .splice() 来表现“类似数组”的对象