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