Tous les sélecteurs jQuery renvoient un tableau d'objets. Ces objets sont-ils toujours dans le même ordre que dans le HTML? Puis-je me fier à cela?
Oui.
Les notes de publication de jQuery 1.3.2 disent:
Éléments renvoyés dans l'ordre des documents
Il s'agit d'une modification apportée au moteur de sélection de jQuery qui réorganise les résultats renvoyés pour qu'ils soient dans l'ordre du document, au lieu de l'ordre dans lequel les sélecteurs ont été transmis. Cette modification a été effectuée afin d'être conforme à la spécification de l'API Selectors (qui jQuery utilise, en interne, dans les navigateurs qui le prennent en charge).
Ce n'était pas le cas sur jQuery 1.3 :
L'ordre des sélecteurs de style "a, b, c" peut changer. Les navigateurs prenant en charge querySelectorAll (Safari, Firefox 3.5+, Opera 10+, IE 8+) renverront les éléments dans l'ordre du document, les autres navigateurs les renverront (actuellement) dans l'ordre spécifié. Dans la version 1.3.2 et les versions ultérieures, tous les sélecteurs séparés par des virgules seront renvoyés dans l'ordre des documents.
Il peut y avoir quelques exceptions, par exemple dans la documentation de prevAll ():
"Étant donné un objet jQuery qui représente un ensemble d'éléments DOM, la méthode .prevAll () recherche parmi les prédécesseurs de ces éléments dans l'arborescence DOM et construit un nouvel objet jQuery à partir des éléments correspondants; les éléments sont renvoyés dans l'ordre commençant par le frère ou sœur le plus proche . "
http://api.jquery.com/prevAll/
la source
Oui, ils sont toujours dans l'ordre car ils sont dans le DOM.
la source
Probablement dans l'ordre dans lequel il les trouve, un sélecteur parcourt à peu près le DOM et lorsqu'il trouve un élément qui correspond, le met dans un tableau.
Vous pourriez peut-être faire un test en ayant disons 5 zones de texte avec les identifiants de "textbox_n" où n est un nombre, puis alerter la liste et voir ce que vous obtenez?
la source