XML DOM previousSibling eigenschap
Definitie en Gebruik
previousSibling
De eigenschap retourneert de vorige同级node van het geselecteerde element (de vorige node op hetzelfde takniveau).
Als er geen dergelijke node bestaat, retourneert deze eigenschap null.
Syntaxis
elementNode.previousSibling
Opmerking:Firefox en de meeste andere browsers zien witruimte of regelbreuken als tekstnode, terwijl Internet Explorer dat niet doet. Daarom gebruiken we in het volgende voorbeeld een functie om het nodetype van de vorige同级node te controleren.
Het nodeType van elementnodes is 1, dus als de vorige同级node niet een elementnode is, wordt naar de vorige node verplaatst en wordt gecontroleerd of deze node een elementnode is. Dit gaat zo door, totdat de vorige同级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, bezoek de DOM-browsers sectie van de XML DOM tutorial.
Voorbeeld
Voorbeeld 1
De volgende code laadt "books.xml" in xmlDoc en haalt de vorige同级 node van het eerste <author>-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(); // Controleer of de vorige同级 node een element node is 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 sibling: " + y.nodeName + " = " + y.childNodes[0].nodeValue; }
Voorbeeld 2
Gebruik nextSibling om de volgende同级 node van een node 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(); // Controleer of de volgende同级 node een element node is 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; }