XML DOM previousSibling eigenschap
Definitie en gebruik
De previousSibling eigenschap kan de node retourneren die direct voorafgaat aan een bepaalde node (op dezelfde tak van de boomstructuur)
Als er geen dergelijk node is, retourneert deze eigenschap null.
Syntaxis:
nodeObject.previousSibling
Tips en opmerkingen
Opmerking:Internet Explorer negeert de lege tekst nodes tussen nodes (bijvoorbeeld, return karakters), terwijl Mozilla dit niet doet. Daarom zullen we in de volgende voorbeelden een functie gebruiken om het nodeType van de eerste child node te controleren.
De nodeType van element nodes is 1, dus als de eerste child node geen element node is, zal deze naar de volgende node verhuizen en verder controleren of deze een element node is. Het hele proces zal doorgaan tot de eerste element child node wordt gevonden. Op deze manier kunnen we in Internet Explorer en Mozilla de juiste methode verkrijgen.
Tip:Voor meer informatie over de verschillen tussen de XML DOM van IE en Mozilla-browsers, bezoek onze DOM-browser hoofdstukken.
voorbeeld
In alle voorbeelden zullen we de XML-bestand gebruiken books.xmlen de JavaScript-functie loadXMLDoc().
De volgende codefragment kan worden verkregen van de <author> element in de XML-document:
//controleer of de vorige sibling node een element node is
function get_previoussibling(n)
{
var x=n.previousSibling;
while (x.nodeType!=1)
{
x=x.previousSibling
;
}
return x;
}
xmlDoc=loadXMLDoc("books.xml");
var x=xmlDoc.getElementsByTagName("author")[0];
document.write(x.nodeName);
document.write(" = ");
document.write(x.childNodes[0].nodeValue);
var y=get_previoussibling(x);
document.write("<br />Previous sibling: ");
document.write(y.nodeName);
document.write(" = ");
document.write(y.childNodes[0].nodeValue);
Output:
author = Giada De Laurentiis Previous sibling: title = Everyday Italian