Gli oggetti dell'ordine vengono restituiti da un selettore jQuery specificato?


92

Tutti i selettori jQuery restituiscono un array di oggetti. Questi oggetti sono sempre nello stesso ordine in cui si trovano nell'HTML? Posso fare affidamento su questo?

Risposte:


114

Sì.
Le note di rilascio di jQuery 1.3.2 dicono:

Elementi restituiti nell'ordine del documento

Questa è una modifica al motore di selezione di jQuery che riordina i risultati restituiti in modo che siano nell'ordine del documento, invece che nell'ordine in cui sono stati passati i selettori. Questa modifica è stata eseguita per essere conforme alla specifica API dei selettori (che jQuery utilizza, internamente, nei browser che lo supportano).

Questo non era il caso di jQuery 1.3 :

L'ordine dei selettori di stile "a, b, c" può cambiare. I browser che supportano querySelectorAll (Safari, Firefox 3.5+, Opera 10+, IE 8+) restituiranno gli elementi nell'ordine del documento, altri browser (attualmente) li restituiranno nell'ordine specificato. Nella versione 1.3.2 e successive verranno restituiti tutti i selettori separati da virgole nell'ordine del documento.


1
Interessante che sia davvero nelle note di rilascio, e ha anche senso, ma qualcuno l'ha dimenticato per metterlo anche in api.jquery.com/multiple-selector - caro qualcuno, per favore aggiungi anche queste informazioni :)!
jave.web

8

Potrebbero esserci alcune eccezioni, ad esempio dalla documentazione prevAll ():

"Dato un oggetto jQuery che rappresenta un insieme di elementi DOM, il metodo .prevAll () cerca i predecessori di questi elementi nell'albero DOM e costruisce un nuovo oggetto jQuery dagli elementi corrispondenti; gli elementi vengono restituiti in ordine che inizia con il fratello più vicino ".

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


3

Sì, sono sempre nell'ordine in cui sono nel DOM.


0

Probabilmente nell'ordine in cui li trova, un selettore attraversa praticamente il DOM e quando trova un elemento che corrisponde, lo inserisce in un array.

Potresti forse fare un test dicendo 5 caselle di testo con ID di "textbox_n" dove n è un numero, quindi avvisa l'elenco e vedi cosa ottieni?

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.