XML DOM vorige eigenschap voor broers en zussen
❮ Knooppuntobject
Voorbeeld
Het volgende codefragment laadt " books.xml " in xmlDoc en haalt het vorige zusterknooppunt van het eerste <author>-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>Previous sibling: " + y.nodeName + " = " +
y.childNodes[0].nodeValue;
}
De uitvoer van de bovenstaande code zal zijn:
author = Giada De Laurentiis
Previous sibling: title = Everyday Italian
Definitie en gebruik
De eigenschap previousSibling retourneert het knooppunt onmiddellijk vóór een knooppunt (het volgende knooppunt in hetzelfde boomstructuurniveau).
Als er geen dergelijk knooppunt is, retourneert deze eigenschap null.
Syntaxis
nodeObject.previousSibling
Tips en opmerkingen
Opmerking: Firefox en de meeste andere browsers behandelen lege spaties of nieuwe regels als tekstknooppunten, Internet Explorer niet. o, in het onderstaande voorbeeld hebben we een functie die het knooppunttype van het vorige zusterknooppunt controleert.
Elementknooppunten hebben een nodeType van 1, dus als het vorige zusterknooppunt geen elementknooppunt is, gaat het naar het volgende knooppunt en controleert het of dit knooppunt een elementknooppunt is. Dit gaat door totdat het vorige zusterknooppunt (dat een elementknooppunt moet zijn) is gevonden. Op deze manier is het resultaat in alle browsers correct.
Tip: om meer te lezen over de verschillen tussen browsers, bezoek ons hoofdstuk over DOM-browsers in onze XML DOM-zelfstudie.
Probeer-het-zelf-demo's
❮ Knooppuntobject