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