2011-02-10 41 views
15

Leer los controles con getElementsByTagName es una práctica muy común para leer el elemento. Sin embargo, me gustaría saber si podemos confiar en el orden en que se devuelven los elementos utilizando esta función.Orden de los elementos devueltos mediante getElementsByTagName()

¿Devuelve elementos en el orden en que se colocan en la interfaz de usuario? ¿O puede devolver elementos aleatorios también donde no podemos confiar en la secuencia en otros momentos?

var labels = document.getElementsByTagName("label"), i; 
for(i=0;i<labels.length;i++) 
{ 
    if(i == 1) 
     labels[i].innerText = "First Value"; 
    else if (i==2) 
     labels[i].innerText = "Second Value"; 

    if (labels[i].innerText == "NULL") { 
     labels[i].innerText = "Empty"; 
    } 
} 

Respuesta

14

Esta función siempre devuelve los elementos en el mismo orden de profundidad.
Este es el orden en el que aparecen en la estructura de árbol HTML.

+6

Incluya una referencia a la documentación: "Devuelve una lista de nodos de todos los elementos con un nombre de etiqueta determinado en el orden en que se encontrarían en un recorrido de preorden del árbol del documento". http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#method-getElementsByTagName – theazureshadow

Cuestiones relacionadas