Alle jQuery-Selektoren geben ein Array von Objekten zurück. Befinden sich diese Objekte immer in derselben Reihenfolge wie im HTML-Code? Kann ich mich darauf verlassen?
Ja.
In den Versionshinweisen zu jQuery 1.3.2 heißt es:
In Dokumentenreihenfolge zurückgegebene Elemente
Dies ist eine Änderung an der Selector-Engine von jQuery, mit der die zurückgegebenen Ergebnisse in der Reihenfolge der Dokumente neu angeordnet werden, anstatt in der Reihenfolge, in der die Selektoren übergeben wurden. Diese Änderung wurde vorgenommen, um der Selectors-API-Spezifikation (welche) zu entsprechen jQuery wird intern in Browsern verwendet, die dies unterstützen.
Dies war bei jQuery 1.3 nicht der Fall :
Die Reihenfolge der Stilauswahl "a, b, c" kann sich ändern. Browser, die querySelectorAll unterstützen (Safari, Firefox 3.5+, Opera 10+, IE 8+), geben die Elemente in Dokumentreihenfolge zurück, andere Browser geben sie (derzeit) in der angegebenen Reihenfolge zurück. In Version 1.3.2 und höher werden alle durch Kommas getrennten Selektoren in Dokumentreihenfolge zurückgegeben.
Es kann einige Ausnahmen geben, zum Beispiel von der prevAll () -Dokumentation:
"Bei einem jQuery-Objekt, das eine Reihe von DOM-Elementen darstellt, durchsucht die Methode .prevAll () die Vorgänger dieser Elemente im DOM-Baum und erstellt aus den übereinstimmenden Elementen ein neues jQuery-Objekt. Die Elemente werden in der Reihenfolge beginnend mit zurückgegeben nächstgelegenes Geschwister . "
http://api.jquery.com/prevAll/
quelle
Ja, sie sind immer in der Reihenfolge wie im DOM.
quelle
Wahrscheinlich durchläuft ein Selektor in der Reihenfolge, in der er sie findet, das DOM und wenn er ein übereinstimmendes Element findet, fügt er es in ein Array ein.
Sie könnten vielleicht einen Test durchführen, indem Sie 5 Textfelder mit den IDs "textbox_n" sagen, wobei n eine Zahl ist. Dann die Liste alarmieren und sehen, was Sie erhalten?
quelle