XML DOM nextSibling-eigenschap

Definitie en Gebruik

nextSibling De eigenschap retourneert de knodo die direct na een andere knodo komt (de volgende knodo op hetzelfde boomniveau).

Als er geen dergelijke knodo bestaat, retourneert deze eigenschap null.

Syntax

nodeObject.nextSibling
Tips en Aantekeningen

Opmerking:Firefox en de meeste andere browsers beschouwen witruimte of een nieuwe regel als een textknodo, terwijl Internet Explorer dit niet doet. Daarom gebruiken we in het volgende voorbeeld een functie om het nodetype van de volgende broerknodo te controleren.

Het nodeType van een elementnode is 1, dus als de volgende broerknodo niet een elementnode is, verplaatst het zich naar de volgende knodo en controleert of deze een elementnode is. Dit gaat door tot de volgende gelijke knodo (moet een elementnode zijn) wordt gevonden. Op deze manier is het resultaat correct in alle browsers.

Tip:For more information on differences between browsers, please visit the DOM Browser section in the XML DOM tutorial.

Example

Example 1

The following code loads "books.xml" into xmlDoc and gets the next sibling node from the first <title> element:

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;
}

Probeer het zelf

Example 2

Get the previous sibling node of the element:

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 previous sibling node is an element node
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>Vorige sibling: " + y.nodeName + " = " + 
    y.childNodes[0].nodeValue;
}

Probeer het zelf