Categories
jquery jquery-ui-sortable list

Does jQuery always iterate through DOMs in order in which they are found in the code?

Say, for example, I have a sortable list:

<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>

What I want to know is, if I make a jQuery call such as the following:

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

Can I expect jQuery to go through the entries from top to bottom? I’ve run a few tests, and tried rearranging items dynamically using jQueryUI, and so far, it seems to always run in order. But can this always be expected? Or is it dumb luck that I’ve not run into anything so far to make me think otherwise…?

“Can I expect jQuery to go through the entries from top to bottom?”

Yes. They are iterated by numeric index from 0 to length - 1.

The elements will always be returned in the order that they appear in the DOM.

“I’ve run a few tests, and tried rearranging items dynamically…”

It doesn’t give consideration to CSS positioning if that’s what you mean. If you’re changing their actual location in the DOM, then you’d only see the updates if you re-select them from the DOM.