订单对象是否由指定的jQuery选择器返回?


92

所有jQuery选择器都返回一个对象数组。这些对象是否始终与HTML中的顺序相同?我可以依靠吗?

Answers:


114

是。
jQuery的1.3.2版本注释说:

按文档顺序返回的元素

这是对jQuery选择器引擎的更改,该更改将返回的结果重新排列为文档顺序,而不是选择器的传递顺序。此更改是为了符合Selectors API规范( jQuery在支持它的浏览器内部使用。

jQuery 1.3并非如此:

“ a,b,c”样式选择器的顺序可能会更改。支持querySelectorAll的浏览器(Safari,Firefox 3.5 +,Opera 10 +,IE 8+)将按文档顺序返回元素,其他浏览器(当前)将按指定顺序返回元素。在1.3.2和更高版本中,所有以逗号分隔的选择器将按文档顺序返回。


1
有趣的是,它确实在发行说明中,而且也很有意义,但是有人忘记了也将其放在api.jquery.com/multiple-selector中 -亲爱的人,也请在此添加此信息:)!
jave.web

8

可能会有一些例外,例如prevAll()文档中的例外:

“给出一个代表一组DOM元素的jQuery对象,.prevAll()方法将在DOM树中搜索这些元素的前身,并从匹配的元素中构造一个新的jQuery对象;这些元素将以从最接近的兄弟姐妹。”

http://api.jquery.com/prevAll/


3

是的,它们始终像在DOM中一样保持顺序。


0

选择器可能按照找到它们的顺序进行遍历,并且在找到匹配的元素时将其放入数组中。

您可以通过说5个ID为“ textbox_n”的文本框(其中n是数字)来进行测试,然后提醒列表,看看您得到了什么?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.