XML-DOM - Eigenschaft previousSibling
❮ Elementobjekt
Beispiel
Das folgende Codefragment lädt „ books.xml “ in xmlDoc und ruft den vorherigen gleichgeordneten Knoten aus dem ersten <author>-Element ab:
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;
}
Die Ausgabe des obigen Codes lautet:
author = Giada De Laurentiis
Previous sibling: title = Everyday Italian
Definition und Verwendung
Die Eigenschaft previousSibling gibt den vorherigen gleichgeordneten Knoten (den vorherigen Knoten in derselben Baumebene) des ausgewählten Elements zurück
Wenn kein solcher Knoten vorhanden ist, gibt diese Eigenschaft null zurück.
Syntax
elementNode.previousSibling
Tipps und Hinweise
Hinweis: Firefox und die meisten anderen Browser behandeln leere Leerzeichen oder neue Zeilen als Textknoten, Internet Explorer nicht. Im Beispiel unten haben wir also eine Funktion, die den Knotentyp des vorherigen Geschwisterknotens überprüft.
Elementknoten haben einen nodeType von 1, wenn also der vorherige gleichgeordnete Knoten kein Elementknoten ist, bewegt er sich zum vorherigen Knoten und prüft, ob dieser Knoten ein Elementknoten ist. Dies wird fortgesetzt, bis der vorherige Geschwisterknoten (der ein Elementknoten sein muss) gefunden wird. Auf diese Weise wird das Ergebnis in allen Browsern korrekt sein.
Tipp: Um mehr über die Unterschiede zwischen Browsern zu erfahren, besuchen Sie unser Kapitel DOM-Browser in unserem XML-DOM-Tutorial.
Demos zum Ausprobieren
❮ Elementobjekt