jQuery是否总是按照代码中的顺序遍历DOM?
比方说,我有一个可排序的列表:
- Item 1
- Item 2
- Item 3
我想知道的是,如果我进行如下的jQuery调用:
$.each($('li'), function(key, item) {...});
我可以期待jQuery从上到下遍历条目吗? 我已经运行了一些测试,并尝试使用jQueryUI动态重新排列项目,到目前为止,它似乎总是按顺序运行。 但这总是可以预料到的吗? 或者是运气不好,到目前为止我还没有碰到任何东西让我想到其他方面……?
“我可以期待jQuery从上到下遍历条目吗?”
是。 它们通过从0
到length - 1
数字索引进行迭代。
元素将始终按它们在DOM中出现的顺序返回。
“我已经进行了一些测试,并尝试动态重新排列项目……”
如果这就是你的意思,它不会考虑CSS定位。 如果您要更改DOM中的实际位置,那么只有在从DOM中重新选择更新时才会看到更新。
它没有使用,但是因为jQuery 1.3.2选择器按照它们在DOM中找到的顺序返回元素。
文档中没有任何地方可以承诺这种行为,但这是它当前实现的方式。
也就是说,我看不出他们为什么会改变这种行为的原因。