Propriété nextSibling du XML DOM

Définition et utilisation

nextSibling Cette propriété renvoie le noeud同级 suivant de l'élément sélectionné (le prochain noeud au même niveau dans l'arbre).

Si aucun tel noeud n'existe, cette propriété renvoie null.

Syntaxe

elementNode.nextSibling
Astuces et Notes

Remarque :Firefox et la plupart des autres navigateurs considèrent les espaces ou les sauts de ligne comme des noeuds texte, tandis qu'Internet Explorer ne le fait pas. Par conséquent, dans l'exemple suivant, nous utilisons une fonction pour vérifier le type de noeud du noeud frère suivant.

L'élément nodeType est 1, par conséquent, si le noeud frère suivant n'est pas un noeud élément, il se déplace au noeud suivant et vérifie si ce noeud est un noeud élément. Cela continuera jusqu'à ce que le prochain noeud同级 (doit être un noeud élément) soit trouvé. De cette manière, le résultat est correct dans tous les navigateurs.

Astuce :Pour en savoir plus sur les différences entre les navigateurs, veuillez consulter la section DOM Browsers de la leçon XML DOM.

Exemple

Exemple 1

Le code suivant charge "books.xml" dans xmlDoc et obtient le node frère suivant du premier élément <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();
// Vérification du node frère suivant s'il est un node élément
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>Frère suivant: " + y.nodeName + " = " +
    y.childNodes[0].nodeValue;
}

Essayer personnellement

Exemple 2

Utilisez la méthode previousSibling pour obtenir le node frère précédent du noeud :

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        myFunction(this);
    }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
// Vérification du node frère précédent s'il est un node élément
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 +
    "Précédent frère : " + y.nodeName + " = " + 
    y.childNodes[0].nodeValue;
}

Essayer personnellement