XML DOM vorige eigenschap voor broers en zussen
❮ Elementobject
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 vorige knooppunt (het vorige knooppunt in dezelfde boomstructuur) van het geselecteerde element
Als er geen dergelijk knooppunt is, retourneert deze eigenschap null.
Syntaxis
elementNode.previousSibling
Tips en opmerkingen
Opmerking: Firefox en de meeste andere browsers behandelen lege spaties of nieuwe regels als tekstknooppunten, Internet Explorer niet. Dus 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 vorige 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
❮ Elementobject