Proprietà nextSibling del XML DOM

Definizione e uso

nextSibling L'attributo restituisce il nodo同级 successivo dell'elemento selezionato (il nodo successivo allo stesso livello dell'albero).

Se non esiste tale nodo, l'attributo restituisce null.

Sintassi

elementNode.nextSibling
Suggerimenti e Note

Attenzione:Firefox e la maggior parte degli altri browser considerano i spazi bianchi o le linee di ritorno come nodi di testo, mentre Internet Explorer non lo fa. Pertanto, nell'esempio seguente, utilizziamo una funzione per controllare il tipo di nodo del nodo fratello successivo.

Il tipo di nodo di un nodo di elemento è 1, quindi se il nodo fratello successivo non è un nodo di elemento, si sposta al nodo successivo e verifica se il nodo è un nodo di elemento. Questo processo continuerà fino a trovare il prossimo nodo同级 (deve essere un nodo di elemento). In questo modo, i risultati sono corretti in tutti i browser.

Suggerimento:Per ulteriori informazioni sulle differenze tra i browser, visitare la sezione DOM Browser dell'iniziozione XML DOM.

Esempio

Esempio 1

Il codice seguente carica "books.xml" nel xmlDoc e ottiene il successore del primo elemento <title>:

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 next sibling node is an element node
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>Successore: " + y.nodeName + " = " +
    y.childNodes[0].nodeValue;
}

Prova personalmente

Esempio 2

Utilizzare il metodo previousSibling per ottenere il nodo同级的前一个节点:

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 +
    "Precedente fratello: " + y.nodeName + " = " + 
    y.childNodes[0].nodeValue;
}

Prova personalmente