XML-DOM nextSibling- Eigenschaft
❮ Knotenobjekt
Beispiel
Das folgende Codefragment lädt „ books.xml “ in xmlDoc und ruft den nächsten gleichgeordneten Knoten aus dem ersten <title>-Element ab:
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;
}
Die Ausgabe des obigen Codes lautet:
title = Everyday Italian
Next sibling: author = Giada De Laurentiis
Definition und Verwendung
Die nextSibling-Eigenschaft gibt den Knoten zurück, der unmittelbar auf einen Knoten folgt (den folgenden Knoten in derselben Baumebene).
Wenn kein solcher Knoten vorhanden ist, gibt diese Eigenschaft null zurück.
Syntax
nodeObject.nextSibling
Tipps und Hinweise
Hinweis: Firefox und die meisten anderen Browser behandeln leere Leerzeichen oder neue Zeilen als Textknoten, Internet Explorer nicht. Im Beispiel unten haben wir also eine Funktion, die den Knotentyp des nächsten Geschwisterknotens überprüft.
Elementknoten haben einen nodeType von 1, wenn also der nächste gleichgeordnete Knoten kein Elementknoten ist, bewegt er sich zum nächsten Knoten und prüft, ob dieser Knoten ein Elementknoten ist. Dies wird fortgesetzt, bis der nächste Geschwisterknoten (der ein Elementknoten sein muss) gefunden wird. Auf diese Weise wird das Ergebnis in allen Browsern korrekt sein.
Tipp: Um mehr über die Unterschiede zwischen Browsern zu erfahren, besuchen Sie unser Kapitel DOM-Browser in unserem XML-DOM-Tutorial.
Demos zum Ausprobieren
❮ Knotenobjekt