--- title: Node.nextSibling slug: Web/API/Node/nextSibling tags: - API - DOM - Gecko - Node - Property - Свойство - Узел - Узлы translation_of: Web/API/Node/nextSibling ---
Свойство Node.nextSibling
используется только для чтения и возвращает узел, непосредственно следующий за данным узлом в списке {{domxref("Node.childNodes","childNodes")}} его родительского элемента, или null
если данный узел последний в этом списке.
nextNode = node.nextSibling
Браузеры, основанные на Gecko, вставляют текстовые узлы в документ для представления пробелов в разметке.
Поэтому узел, полученный, например, при использовании Node.firstChild
или Node.previousSibling
может относиться к
пробелу, а не к тому элементу, который автор хотел получить.
Смотрите Пробел в DOM и W3C DOM 3 FAQ: Почему некоторые текстовые узлы пустые? для дополнительной информации.
<div id="div-01">Вот div-01</div> <div id="div-02">Вот div-02</div> <script type="text/javascript"> var el = document.getElementById('div-01').nextSibling, i = 1; console.log('Потомки div-01:'); while (el) { console.log(i + '. ' + el.nodeName); el = el.nextSibling; i++; } </script> /************************************************** Следующий пример напишет в консоль: Потомки div-01: 1. #text 2. DIV 3. #text 4. SCRIPT **************************************************/
В приведённом выше примере вы можете видеть, что #text
узлы вставляются в DOM, где между тегами встречаются пробелы (т.е. после закрывающего тега элемента и до открывающего тега рядом). Не создаётся пробелов между элементами, вставленных с помощью document.write
Возможность включения текстовых узлов в DOM должна быть разрешена, когда DOM обходится с помощью nextSibling
. Смотрите раздел "Примечания".