Is the order objects are return by a jQuery selector specified?

Jquery

Jquery Problem Overview


All jQuery selectors return an array of objects. Are these objects always in the same order as they are in the HTML? Can I rely on this?

Jquery Solutions


Solution 1 - Jquery

Yes.
The jQuery 1.3.2 release notes say:

>### Elements Returned in Document Order > >This is a change to jQuery's selector engine that re-orders the returned results to be in document order, instead of the order in which the selectors were passed in. This change was done in order to be in compliance with the Selectors API specification (which jQuery uses, internally, in browsers that support it).

This wasn't the case on jQuery 1.3:

> The order of "a, b, c" style selectors may change. Browsers that support querySelectorAll (Safari, Firefox 3.5+, Opera 10+, IE 8+) will return the elements in document order, other browsers will (currently) return them in the order specified. In 1.3.2 and later release all comma-separated selectors will be returned in document order.

Solution 2 - Jquery

There may be some exceptions, for example from the prevAll() documentation:

"Given a jQuery object that represents a set of DOM elements, the .prevAll() method searches through the predecessors of these elements in the DOM tree and construct a new jQuery object from the matching elements; the elements are returned in order beginning with the closest sibling."

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

Solution 3 - Jquery

Yes, they're always in the order as they're in the DOM.

Solution 4 - Jquery

Probably in the order it finds them, a selector pretty much traverses the DOM and when it finds an element that matches, puts it in an array.

You could maybe do a test by having say 5 textboxes with id's of "textbox_n" where n is a number, then alert the list and see what you get?

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionuser28584View Question on Stackoverflow
Solution 1 - JqueryKobiView Answer on Stackoverflow
Solution 2 - JqueryEmery LapinskiView Answer on Stackoverflow
Solution 3 - Jqueryreko_tView Answer on Stackoverflow
Solution 4 - Jqueryroyse41View Answer on Stackoverflow