Skip to main content

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



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?





Source: Tips4all

Comments

  1. 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.

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

    ReplyDelete
  3. 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?

    ReplyDelete

Post a Comment

Popular posts from this blog

Slow Android emulator

I have a 2.67 GHz Celeron processor, 1.21 GB of RAM on a x86 Windows XP Professional machine. My understanding is that the Android emulator should start fairly quickly on such a machine, but for me it does not. I have followed all instructions in setting up the IDE, SDKs, JDKs and such and have had some success in staring the emulator quickly but is very particulary. How can I, if possible, fix this problem?