Node.childNodes
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.
Доступный для чтения аттрибут Node.childNodes
возвращает коллекцию дочерних элементов данного элемента.
Синтаксис
var ndList = elementNodeReference.childNodes;
ndList — упорядоченная коллекция объектов элементов, которые являются детьми данного элемента. Если у элемента нет детей, ndList пуст.
ndList — переменная, хранящая список дочерних элементов. Тип этого списка — NodeList
.
Пример
// parg -- ссылка на элемент <p>
if (parg.hasChildNodes()) {
// Таким образом, сначала мы проверяем, не пуст ли объект, есть ли у него дети
var children = parg.childNodes;
for (var i = 0; i < children.length; ++i) {
// сделать что-то с каждым внутренним элементом через children[i]
// ПРИМЕЧАНИЕ: Список является ссылкой, Добавление или удаление дочерних элементов изменит список
}
}
// Это один из способов удалить все дочерние элементы из элемента
// box -- ссылка на элемент с детьми
while (box.firstChild) {
//Список является ссылкой, то есть он будет переиндексирован перед каждым вызовом
box.removeChild(box.firstChild);
}
Примечания
Элементы в коллекции — объекты, а не строки. Чтобы получить данные из этих объектов, вы должны использовать их свойства (например, elementNodeReference.childNodes[1].nodeName
чтобы получить имя, и т. д.).
Объект document
обладает 2-мя детьми: декларацией Doctype и корневым элементов, к которому как правило обращаются как documentElement
. (В (X)HTML документах это HTML-элемент.)
childNodes
также включают, например, текстовые узлы и комментарии. Чтобы пропустить их, используйте ParentNode.children
взамен.
Спецификации
Specification |
---|
DOM Standard # ref-for-dom-node-childnodes① |
Совместимость с браузерами
BCD tables only load in the browser