Propriété previousSibling du XML DOM
Définition et utilisation
previousSibling
La propriété renvoie le noeud précédent immédiat (le noeud suivant au même niveau dans l'arbre).
Si aucun tel noeud n'existe, cette propriété renvoie null.
Syntaxe
nodeObject.previousSibling
Attention :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. Dans l'exemple suivant, nous utilisons une fonction pour vérifier le type de noeud du noeud frère précédent.
Le nodeType de l'élément est 1, donc si le noeud frère précédent 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 qu'il trouve le noeud frère précédent (doit être un noeud élément). De cette manière, le résultat est correct dans tous les navigateurs.
Avis :Pour plus d'informations sur les différences entre les navigateurs, veuillez consulter la section DOM navigateur du tutoriel XML DOM.
Exemple
Exemple 1
Le code suivant charge "books.xml" dans xmlDoc et récupère le précédent élément frère du premier élément <author> :
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 si le précédent élément frère est un nœud é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 + "<br>Précédent frère : " + y.nodeName + " = " + y.childNodes[0].nodeValue; {}
Exemple 2
Obtenir le prochain élément frère du nœud :
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 si le prochain élément frère est un nœud é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; {}