XML DOM nextSibling eigenschap

Definitie en Gebruik

nextSibling De eigenschap retourneert de volgende同级 node van het geselecteerde element (de volgende node op hetzelfde boomniveau).

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

Syntaxis

elementNode.nextSibling
Tips en Aantekeningen

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

Het nodeType van een elementnode is 1, dus als de volgende broer niet een elementnode is, verplaatst het zich naar de volgende node en controleert of deze een elementnode is. Dit zal voortdurend doorgaan tot de volgende同级 node (moet een elementnode zijn) wordt gevonden. Op deze manier is het resultaat correct in alle browsers.

Tip:Voor meer informatie over verschillen tussen browsers, raadpleeg het DOM-browsertutorial in de XML DOM-les.

Voorbeeld

Voorbeeld 1

De volgende code laadt "books.xml" in xmlDoc en haalt de volgende gelijke node van het eerste <title>-element op:

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>Volgende sibling: " + y.nodeName + " = " +
    y.childNodes[0].nodeValue;
}

Probeer het zelf

Voorbeeld 2

Gebruik de previousSibling-methode om de vorige gelijke node van het knooppunt te verkrijgen:

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>Voorgaande zuster: " + y.nodeName + " = " + 
    y.childNodes[0].nodeValue;
}

Probeer het zelf