XML DOM свойство nextSibling
❮ Узел объекта
Пример
Следующий фрагмент кода загружает " books.xml " в xmlDoc и получает следующий одноуровневый узел из первого элемента <title>:
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
myFunction(this);
}
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
//
Check if the next sibling node is an element node
function
get_nextsibling(n) {
var x = n.nextSibling;
while (x.nodeType != 1) {
x =
x.nextSibling;
}
return x;
}
function myFunction(xml) {
var xmlDoc = xml.responseXML;
var x = xmlDoc.getElementsByTagName("title")[0];
var y
= get_nextsibling(x);
document.getElementById("demo").innerHTML
= x.nodeName + " = " +
x.childNodes[0].nodeValue +
"<br>Next sibling: " + y.nodeName + " = " +
y.childNodes[0].nodeValue;
}
Вывод кода выше будет:
title = Everyday Italian
Next sibling: author = Giada De Laurentiis
Определение и использование
Свойство nextSibling возвращает узел, следующий сразу за узлом (следующий узел на том же уровне дерева).
Если такого узла нет, это свойство возвращает значение null.
Синтаксис
nodeObject.nextSibling
Советы и примечания
Примечание. Firefox и большинство других браузеров будут рассматривать пустые пробелы или новые строки как текстовые узлы, а Internet Explorer — нет. Итак, в приведенном ниже примере у нас есть функция, которая проверяет тип узла следующего родственного узла.
Узлы элементов имеют тип узла, равный 1, поэтому, если следующий родственный узел не является узлом элемента, он перемещается к следующему узлу и проверяет, является ли этот узел узлом элемента. Это продолжается до тех пор, пока не будет найден следующий родственный узел (который должен быть узлом элемента). Таким образом, результат будет правильным во всех браузерах.
Совет. Чтобы узнать больше о различиях между браузерами, посетите главу « Браузеры DOM » в нашем учебном пособии по XML DOM.
Демонстрации «Попробуйте сами»
❮ Узел объекта