2011-02-10 3 views
15

Чтение элементов управления с использованием getElementsByTagName - очень распространенная практика для чтения элемента. Однако я хотел бы знать, можем ли мы доверять порядку, в котором элементы возвращаются с использованием этой функции.Порядок элементов, возвращаемых с помощью getElementsByTagName()

Он возвращает элементы в том порядке, в котором они размещены в пользовательском интерфейсе? Или он может возвращать случайные элементы тоже, где мы не можем доверять последовательности в другое время?

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

ответ

14

Эта функция всегда возвращает элементы в том же порядке глубины.
Это порядок, в котором они отображаются в структуре дерева HTML.

+6

Пожалуйста, включите ссылку на документацию: «Возвращает NodeList всех элементов с заданным именем тега в том порядке, в котором они будут встречаться при обходе предзаказов дерева документа». http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#method-getElementsByTagName – theazureshadow

Смежные вопросы