¿Los objetos de orden son devueltos por un selector de jQuery especificado?


93

Todos los selectores de jQuery devuelven una matriz de objetos. ¿Estos objetos están siempre en el mismo orden que en el HTML? ¿Puedo confiar en esto?

Respuestas:


115

Si.
Las notas de la versión de jQuery 1.3.2 dicen:

Elementos devueltos en orden de documento

Este es un cambio en el motor de selección de jQuery que reordena los resultados devueltos para que estén en el orden del documento, en lugar del orden en el que se pasaron los selectores. Este cambio se realizó para cumplir con la especificación de la API de selectores (que jQuery utiliza, internamente, en los navegadores que lo admiten).

Este no fue el caso en jQuery 1.3 :

El orden de los selectores de estilo "a, b, c" puede cambiar. Los navegadores que admiten querySelectorAll (Safari, Firefox 3.5+, Opera 10+, IE 8+) devolverán los elementos en el orden del documento, otros navegadores (actualmente) los devolverán en el orden especificado. En 1.3.2 y versiones posteriores, todos los selectores separados por comas se devolverán en el orden del documento.


1
Es interesante que realmente esté en las notas de la versión, y también tiene sentido, pero alguien lo olvidó para ponerlo también en api.jquery.com/multiple-selector . Querido, ¡agregue esta información allí también :)!
jave.web

La respuesta es realmente antigua, ¿alguien ha encontrado un enlace actualizado?
Daniel Leach

1
@DanielLeach - Actualicé los enlaces, gracias. Este comportamiento aún debería ser correcto, también se documenta aquí para la última versión: api.jquery.com/multiple-selector
Kobi

8

Puede haber algunas excepciones, por ejemplo, de la documentación prevAll ():

"Dado un objeto jQuery que representa un conjunto de elementos DOM, el método .prevAll () busca a través de los predecesores de estos elementos en el árbol DOM y construye un nuevo objeto jQuery a partir de los elementos coincidentes; los elementos se devuelven en orden comenzando con el hermano más cercano ".

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


3

Sí, siempre están en el orden que están en el DOM.


0

Probablemente en el orden en que los encuentra, un selector atraviesa prácticamente el DOM y cuando encuentra un elemento que coincide, lo coloca en una matriz.

Tal vez podría hacer una prueba con 5 cuadros de texto con id's de "textbox_n" donde n es un número, luego alertar a la lista y ver lo que obtiene.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.