Es el tipo de orden de jQuery $().cada uno de los() está garantizado?

En una página de mi sitio que tiene una lista de entradas creadas por el usuario estándar HTML <ul> con <li> elementos dentro de ella.

Quiero recorrer la lista, pero el orden de los elementos es importante.

Usando jQuery $('.myList li').each(), puedo garantizar que voy a obtener la li elementos en el orden en que aparecen en la DOM?

De mis pruebas hasta el momento, parece que se llega a afirmar en el orden correcto, pero no puedo encontrar nada que me dice que es garantizado.

Si no está garantizado, lo que podría ser el mejor método alternativo para iterar a través de ellos en orden?

InformationsquelleAutor Simba | 2014-08-06

1 Kommentar

  1. 74

    Así que después de la lectura de los documentos y se marchen todavía no es muy cierto, terminé de buceo en realidad una lectura de jQuery código fuente (gracias a @RoryMcCrossan la respuesta para preguntar sobre eso).

    De hecho, contrariamente a lo que @RoryMcCrossan dijo), $().each() utiliza for...in o for, dependiendo de si la entrada es un objeto o un array.

    Para la ‘matriz’, que es suficiente ser un ‘array’ parecido a un objeto, que es el caso de un objeto jQuery que contiene una lista numerada de los elementos y un length propiedad.

    Por lo tanto, una llamada a $().each() utilizará for y no for...each como es iterar sobre un objeto jQuery. Y ya que estamos usando for, sabemos que podemos garantizar el orden de iteración para $().each() va a coincidir con el orden de los elementos es dado.

    Lo que me lleva a pedir un seguimiento de la cuestión de si el orden de los elementos dados por la consulta original está garantizado a ser el mismo, tal como aparecen en el DOM. Si es así, entonces debería estar bien.

    La respuesta a la que se puede encontrar en la pregunta vinculada en los comentarios de @Mritunjay, y la respuesta es ‘sí, son devueltos en el orden en que aparecen en el DOM.

    Por lo que la respuesta final es que sí, puedo usar $('.myList li').each() y iterar a través de los elementos de la lista en el orden en que aparecen en el DOM.

    Gracias por la ayuda y las indicaciones de los chicos. Apreciada.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea