HTMLCollection
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Интерфейс HTMLCollection
является обобщённой коллекцией (объектом, ведущим себя подобно массиву) элементов (в порядке упоминания в документе) и предоставляет методы и свойства для получения хранящихся в нём элементов.
Примечание: Интерфейс назван HTMLCollection
по историческим причинам. До стандарта DOM4 коллекции, реализующие данный интерфейс, использовались только для хранения HTML-элементов.
HTMLCollection
, хранящая элементы DOM, является динамической. При изменении документа она моментально отражает все произведённые изменения.
Свойства
HTMLCollection.length
Только для чтения-
Возвращает количество элементов в коллекции.
Методы
HTMLCollection.item()
-
Возвращает узел с порядковым номером
index
; отсчёт ведётся от нуля. Возвращаетnull
, еслиindex
выходит за границы допустимого диапазона. HTMLCollection.namedItem()
-
Возвращает узел, идентификатор или имя (в целях совместимости) которого совпадает со строкой, переданной в аргументе
name
. Соответствие имени проверяется в самую последнюю очередь, только для HTML-элементов и только для тех из них, которые поддерживают свойствоname
. Возвращаетnull
, если искомый элемент отсутствует.
Использование в JavaScript
HTMLCollection
предоставляет своё содержимое как собственные свойства, доступные как по имени, так и по индексу (как в массиве). Это связано с тем, что идентификаторы HTML-элементов, содержащие точки и двоеточие (допустимо в HTML5), адресуемы исключительно через синтаксис доступа к массиву. Однако, при числовых идентификаторах невозможно определить, производится ли запрос по индексу или по идентификатору, неявно приведённому к числу.
Пусть в документе присутствует элемент <form>
с id
, равным «myForm
»:
var elem1, elem2;
// document.forms имеет тип HTMLCollection
elem1 = document.forms[0];
elem2 = document.forms.item(0);
alert(elem1 === elem2); // выводит "true"
elem1 = document.forms.myForm;
elem2 = document.forms.namedItem("myForm");
alert(elem1 === elem2); // выводит "true"
elem1 = document.forms["named.item.with.periods"];
Спецификации
Specification |
---|
DOM Standard # interface-htmlcollection |
Совместимость с браузерами
BCD tables only load in the browser