XML DOM nextSibling-Eigenschaft

Definition und Verwendung

nextSibling Die Eigenschaft gibt den Knoten zurück, der unmittelbar nach einem bestimmten Knoten folgt (der nächste Knoten auf der gleichen Baumebene).

Falls kein solcher Knoten existiert, gibt die Eigenschaft null zurück.

Syntax

nodeObject.nextSibling
Tips and Notes

Hinweis:Firefox und die meisten anderen Browser betrachten Leerzeichen oder Zeilenumbrüche als Textknoten, während Internet Explorer dies nicht tut. Daher verwenden wir in den folgenden Beispielen eine Funktion, um den Knotentyp des nächsten Brüderknotens zu überprüfen.

Das nodeType des Elementknotens beträgt 1, daher bewegt sich der nächste Brüderknoten, wenn der nächste Brüderknoten kein Elementknoten ist, zum nächsten Knoten und überprüft, ob dieser Knoten ein Elementknoten ist. Dies wird fortgesetzt, bis der nächste gleichstufige Knoten (muss ein Elementknoten sein) gefunden wird. Auf diese Weise ist das Ergebnis in allen Browsern korrekt.

Hinweis:Für mehr Informationen über die Unterschiede zwischen Browsern besuchen Sie bitte das Kapitel "DOM-Browser" im XML DOM-Tutorial.

Beispiel

Beispiel 1

Das folgende Code lädt "books.xml" in xmlDoc und holt den nächsten Klassenbruder des ersten <title>-Elements:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
   if (this.readyState == 4 && this.status == 200) {
       myFunction(this);
   {}
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
// Überprüfen, ob der nächste Klassenbruder ein Elementknoten ist
function get_nextsibling(n) {
    var x = n.nextSibling;
    while (x.nodeType != 1) {
        x = x.nextSibling;
    {}
    return x;
{}
function myFunction(xml) {
    var xmlDoc = xml.responseXML;
    var x = xmlDoc.getElementsByTagName("title")[0];
    var y = get_nextsibling(x);
    document.getElementById("demo").innerHTML = x.nodeName + " = " +
    x.childNodes[0].nodeValue +
    "<br>Nächster Klassenbruder: " + y.nodeName + " = " +
    y.childNodes[0].nodeValue;
{}

Try It Yourself

Beispiel 2

Den vorherigen Klassenbruder des Knotens erhalten:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        myFunction(this);
    {}
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
// Überprüfen, ob der vorherige Klassenbruder ein Elementknoten ist
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;
{}

Try It Yourself