jQuery是否总是按照代码中的顺序遍历DOM?

比方说,我有一个可排序的列表:

  • Item 1
  • Item 2
  • Item 3

我想知道的是,如果我进行如下的jQuery调用:

$.each($('li'), function(key, item) {...});

我可以期待jQuery从上到下遍历条目吗? 我已经运行了一些测试,并尝试使用jQueryUI动态重新排列项目,到目前为止,它似乎总是按顺序运行。 但这总是可以预料到的吗? 或者是运气不好,到目前为止我还没有碰到任何东西让我想到其他方面……?

“我可以期待jQuery从上到下遍历条目吗?”

是。 它们通过从0length - 1数字索引进行迭代。

元素将始终按它们在DOM中出现的顺序返回。

“我已经进行了一些测试,并尝试动态重新排列项目……”

如果这就是你的意思,它不会考虑CSS定位。 如果您要更改DOM中的实际位置,那么只有在从DOM中重新选择更新时才会看到更新。

它没有使用,但是因为jQuery 1.3.2选择器按照它们在DOM中找到的顺序返回元素。

文档中没有任何地方可以承诺这种行为,但这是它当前实现的方式。

也就是说,我看不出他们为什么会改变这种行为的原因。