.eq()无序

时间:2017-12-01 12:06:33

标签: javascript jquery arrays indexing

我正在尝试使用eq()方法选择JQuery对象的第3个元素。但由于某种原因,第二和第三选择按更改顺序弹出:

var selection = $("[name=input0], [name=input1], [name=input2], [name=input3]");
selection.eq(1); //turns out to be input2!!

这种行为可能是什么原因?我可以信任我的脚本中的索引来访问它吗?

2 个答案:

答案 0 :(得分:7)

根据: https://api.jquery.com/multiple-selector/

返回的jQuery对象中DOM元素的顺序可能不相同,因为它们将按文档顺序排列。

答案 1 :(得分:0)

借助答案和评论以及对文档的一些阅读。

事实证明,jQuery按照它们在DOM(HTML)中出现的顺序选择元素,因此:
如果使用该顺序,则使用对jQuery选择的直接数组访问将起作用,但如果您还负责HTML,则只能信任它,如果您要更改布局,则需要记住这一点。

底线:不是选择特定元素的最佳方式。