XML DOM nextSibling-Eigenschaft

Definition und Verwendung

nextSibling Diese Eigenschaft gibt den nächsten Gleichknoten des ausgewählten Elements zurück (den nächsten Knoten im gleichen Baumebene).

Falls kein solcher Knoten existiert, gibt diese Eigenschaft null zurück.

Syntax

elementNode.nextSibling
Tips and Notes

Hinweis:Firefox und die meisten anderen Browser betrachten Leerzeichen oder Zeilenumbrüche als Textknoten, während Internet Explorer dies nicht tut. Daher verwenden wir in den folgenden Beispielen eine Funktion, um den Knotentyp des nächsten Brüderknotens zu überprüfen.

Der nodeType des Elementknotens beträgt 1, daher bewegt sich der nächste Brüderknoten, wenn dieser kein Elementknoten ist, zum nächsten Knoten und überprüft, ob dieser Knoten ein Elementknoten ist. Dies wird fortgesetzt, bis der nächste Gleichknoten (muss ein Elementknoten sein) gefunden wird. Auf diese Weise ist das Ergebnis in allen Browsern korrekt.

Hinweis:Für mehr Informationen über die Unterschiede zwischen Browsern besuchen Sie bitte das Kapitel DOM-Browser im XML DOM-Tutorial.

Beispiel

Beispiel 1

Das folgende Code lädt "books.xml" in xmlDoc und holt den nächsten gleichstufigen Knoten des ersten <title>-Elements:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
   if (this.readyState == 4 && this.status == 200) {
       myFunction(this);
   }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
// Überprüfen, ob der nächste gleichstufige Knoten ein Elementknoten ist
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>Nächster Bruder: " + y.nodeName + " = " +
    y.childNodes[0].nodeValue;
}

Try It Yourself

Beispiel 2

Verwenden Sie die Methode previousSibling, um den vorherigen gleichstufigen Knoten des Knotens zu erhalten:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        myFunction(this);
    }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
// Überprüfen, ob der vorherige gleichstufige Knoten ein Elementknoten ist
function get_previoussibling(n) {
    var x = n.previousSibling;
    while (x.nodeType != 1) {
        x = x.previousSibling;
    }
    return x;
}
function myFunction(xml) {
    var xmlDoc = xml.responseXML;
    var x = xmlDoc.getElementsByTagName("author")[0];
    var y = get_previoussibling(x);
    document.getElementById("demo").innerHTML = x.nodeName + " = " + 
    x.childNodes[0].nodeValue +
    "<br>Previous sibling: " + y.nodeName + " = " + 
    y.childNodes[0].nodeValue;
}

Try It Yourself