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 such a node does not exist, 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.

Node type of element node is 1, therefore 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同级 node (must be an element node) is found. As a result, it is correct in all browsers.

Petunjuk:Untuk mendapatkan informasi lebih lanjut tentang perbedaan antara browser, kunjungi bagian DOM Browser di tutorial XML DOM.

Contoh

Contoh 1

Kode di bawah ini akan memuat "books.xml" ke xmlDoc dan mendapatkan node yang sama berikutnya dari elemen <title> pertama:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
   if (this.readyState == 4 && this.status == 200) {
       myFunction(this);
   }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
// Memeriksa apakah node yang sama berikutnya adalah node elemen
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;
}

亲自试一试

Contoh 2

Menggunakan metode previousSibling, mendapatkan node yang sama sebelumnya:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        myFunction(this);
    }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
// Memeriksa apakah node yang sama sebelumnya adalah node elemen
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;
}

亲自试一试