XML DOM previousSibling-Attribut

Definition und Verwendung

Die previousSibling-Attribut gibt den vorherigen gleichstufigen Knoten des ausgewählten Knotens zurück (der vorherige Knoten im gleichen Baumlevel).

Falls kein solcher Knoten existiert, wird das Attribut null zurückgegeben.

Syntax:

elementNode.previousSibling

Hinweise und Anmerkungen

Anmerkung:Internet Explorer ignoriert leere Textknoten zwischen Knoten (z.B. Zeilenumbrüche), während Mozilla dies nicht tut. Daher wird in den folgenden Beispielen eine Funktion verwendet, um den Knotentyp des vorherigen gleichstufigen Knotens zu überprüfen.

Der Knotentyp des Elementknotens ist 1, daher wird, wenn der vorherige gleichstufige Knoten kein Elementknoten ist, zum vorherigen Knoten navigiert und überprüft, ob dieser Knoten ein Elementknoten ist. Dieser Prozess wird fortgesetzt, bis der vorherige gleichstufige Knoten gefunden ist. Diese Methode stellt sicher, dass sowohl in Internet Explorer als auch in Mozilla korrekte Ergebnisse erhalten werden.

Für mehr Informationen über die Unterschiede zwischen IE und Mozilla-Browser besuchen Sie bitte das XML DOM-Tutorial auf CodeW3C.com DOM-Browser dieses Kapitels.

Beispiel

In allen Beispielen verwenden wir das XML-Dokument books.xmlsowie die JavaScript-Funktion loadXMLDoc().

Der folgende Code-Abschnitt ermittelt den vorherigen gleichstufigen Knoten des ersten <author>-Elements im XML-Dokument:

//prüfen, ob der vorherige Schwesterknoten ein Elementknoten ist
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);

Die Ausgabe des obigen Codes:

author = Giada De Laurentiis
Previous sibling: title = Everyday Italian