XML DOM nextSibling property

Definition and Usage

nextSibling This property returns the next sibling node of the selected element (the next node at the same tree level).

If there is no such node, this property returns null.

Syntax

elementNode.nextSibling
Tips and Notes

Note:Firefox and most other browsers treat whitespace or newline as text nodes, while Internet Explorer does not. Therefore, in the following example, we use a function to check the node type of the next sibling node.

Element nodes' nodeType is 1, so if the next sibling node is not an element node, it moves to the next node and checks whether the node is an element node. This will continue until the next sibling node (must be an element node) is found. As a result, it is correct in all browsers.

Tips:För mer information om skillnader mellan webbläsare, besök avsnittet DOM-browsare i XML DOM-tutorials.

Exempel

Exempel 1

Nedanstående kod laddar "books.xml" till xmlDoc och hämtar nästa jämlika nod från den första <title>-elementet:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
   if (this.readyState == 4 && this.status == 200) {
       myFunction(this);
   }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
// Kontrollera om den nästa jämlika noden är en elementnod
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>Next sibling: " + y.nodeName + " = " +
    y.childNodes[0].nodeValue;
}

Prova själv

Exempel 2

Använd previousSibling-metoden för att få tag på den föregående jämlika noden:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        myFunction(this);
    }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
// Kontrollera om den föregående jämlik node är en elementnod
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>Föregående syskon: " + y.nodeName + " = " + 
    y.childNodes[0].nodeValue;
}

Prova själv