Свойство Node.nextSibling
используется только для чтения, оно возвращает узел следующий сразу после данного узла в родительском элементе 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
. Смотрите раздел "Заметки".