Метод getElementsByTagName() возвращает объект HTMLCollection.
Объект HTMLCollection — это похожий на массив список (набор или коллекция) HTML элементов.
Следующий код отбирает в документе все элементы <p>:
var x = document.getElementsByTagName("p");
Доступ к элементам набора можно получить по номеру индекса.
Так, чтобы получить доступ ко второму элементу <p> в наборе, нужно написать:
y = x[1];
Внимание! Индексация элементов в наборе начинается с 0.
Длина объекта HTMLCollection
Свойство length определяет количество элементов в наборе HTMLCollection:
var myCollection = document.getElementsByTagName("p");
document.getElementById("demo").innerHTML = myCollection.length;
Объяснение примера:
- Создадим набор всех элементов <p>
- Выведем на экран длину этого набора
Свойство length бывает полезно, когда необходимо в цикле обойти все элементы набора.
В следующем примере изменяется фоновый цвет всех элементов <p>:
var myCollection = document.getElementsByTagName("p");
var i;
for (i = 0; i < myCollection.length; i++) {
myCollection[i].style.backgroundColor = "red";
}
Внимание! HTMLCollection — это НЕ массив! HTMLCollection может выглядеть как массив, но на самом деле им не является. Вы можете в цикле проходить по списку элементов и ссылаться на элементы по их номерам (как в массиве), но вы не можете использовать методы массива valueOf(), pop(), push() или join() с HTMLCollection.