Spec-Zone.ru › Web APIs

Узел: свойство childNodes

Базовая линия Широко доступна

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Чтение только свойство childNodes интерфейса Node возвращает живой NodeList дочерних nodes данного элемента, где первому дочернему узлу присваивается индекс 0. К дочерним узлам относятся элементы, текст и комментарии.

Примечание: NodeList, являясь живым, означает, что его содержимое изменяется каждый раз, когда добавляются или удаляются новые дочерние элементы.

Браузеры вставляют текстовые узлы в документ для представления пробелов в исходной разметке. Поэтому узел, полученный, например, с помощью Node.childNodes[0] , может ссылаться на текстовый узел пробела, а не на фактический элемент, который автор хотел получить.

Дополнительную информацию см. в разделе Пробелы в DOM.

Элементы в коллекции узлов — это объекты, а не строки. Для получения данных из объектов узлов используйте их свойства. Например, чтобы получить имя первого childNode, можно использовать elementNodeReference.childNodes[0].nodeName.

Объект document сам имеет два дочерних элемента: объявление Doctype и корневой элемент, обычно называемый documentElement. В HTML-документах последний — это элемент <html>.

Важно помнить, что childNodes включает все дочерние узлы, включая узлы, не являющиеся элементами, такие как текст и комментарии. Чтобы получить коллекцию, содержащую только элементы, используйте Element.children вместо этого.

Значение

Живой NodeList, содержащий дочерние элементы узла.

Примечание: Несколько вызовов childNodes возвращают один и тот же NodeList.

Примеры

Простой пример использования

// Note that para is an object reference to a <p> element

// First check that the element has child nodes
if (para.hasChildNodes()) {
  let children = para.childNodes;

  for (const node of children) {
    // Do something with each child as children[i]
    // NOTE: List is live! Adding or removing children will change the list's `length`
  }
}

Удаление всех дочерних элементов узла

// This is one way to remove all children from a node
// box is an object reference to an element
while (box.firstChild) {
  // The list is LIVE so it will re-index each call
  box.removeChild(box.firstChild);
}

Спецификации

Спецификация
DOM
# ref-for-dom-node-childnodes①

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
childNodes 1 12 1 7 1.2 18 4 10.1 1 1.0 4.4

См. также

  • Node.firstChild
  • Node.lastChild
  • Node.nextSibling
  • Node.previousSibling
  • Element.children

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Node/childNodes

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API