XML DOM previousSibling-eigenschap
Definitie en gebruik
De previousSibling-eigenschap retourneert de vorige同级 node van de geselecteerde node (de vorige node op hetzelfde takniveau).
Als er geen dergelijke node bestaat, retourneert deze eigenschap null.
Syntaxis:
elementNode.previousSibling
Tips en opmerkingen
Opmerking:Internet Explorer negeert de lege tekst nodes die tussen nodes worden gegenereerd (bijvoorbeeld newline tekens), terwijl Mozilla dit niet doet. Daarom gebruiken we in het volgende voorbeeld een functie om het node-type van de vorige同级 node te detecteren.
Het node-type van een element node is 1, dus als de vorige同级 node geen element node is, ga dan naar de vorige node en controleer of deze een element node is. Dit proces gaat door tot de vorige同级 node is gevonden. Deze methode zorgt ervoor dat correcte resultaten worden verkregen in zowel Internet Explorer als Mozilla.
Voor meer informatie over de verschillen tussen IE en Mozilla browsers, bezoek de XML DOM-tutorial op CodeW3C.com DOM-browser in deze sectie.
voorbeeld
In alle voorbeelden gebruiken we het XML-bestand books.xmlen de JavaScript-functie loadXMLDoc().
De volgende codefragment haalt de vorige同级 node van de eerste <author> element in het XML-document op:
//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);
The output of the above code:
author = Giada De Laurentiis Previous sibling: title = Everyday Italian