2011-02-10 17 views
15

Leggere i controlli utilizzando getElementsByTagName è una pratica molto comune per leggere l'elemento. Tuttavia mi piacerebbe sapere se possiamo fidarci dell'ordine in cui gli elementi vengono restituiti utilizzando questa funzione.Ordine degli elementi restituiti utilizzando getElementsByTagName()

Restituisce gli elementi nell'ordine in cui sono posizionati sull'interfaccia utente? Oppure può restituire anche elementi casuali in cui non ci si può fidare della sequenza in altri momenti?

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"; 
    } 
} 

risposta

14

Questa funzione restituisce sempre gli elementi nello stesso ordine di profondità.
Questo è l'ordine in cui vengono visualizzati nella struttura ad albero HTML.

+6

Includere un riferimento alla documentazione: "Restituisce una NodeList di tutti gli elementi con un determinato nome di tag nell'ordine in cui si verificherebbero in un attraversamento preordinato dell'albero del documento." http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#method-getElementsByTagName – theazureshadow

Problemi correlati