Propriété lastChild de XML DOM
Définition et utilisation
lastChild
Cette propriété retourne le dernier enfant de l'élément sélectionné.
Si le nœud sélectionné n'a pas d'enfants, cette propriété retourne NULL.
Syntaxe
elementNode.lastChild
Remarque :Firefox et la plupart des autres navigateurs considèrent les espaces ou les retours chariots comme des nœuds de texte, tandis que Internet Explorer ne le fait pas. Par conséquent, dans l'exemple suivant, nous utilisons une fonction pour vérifier le type de nœud du dernier enfant.
Le nodeType des nœuds d'élément est 1, donc si le dernier enfant n'est pas un nœud d'élément, il se déplace vers le nœud précédent et vérifie si ce nœud est un nœud d'élément. Cela continue jusqu'à ce que le dernier enfant soit trouvé (doit être un nœud d'é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
Le code suivant charge "books.xml" dans xmlDoc et obtient le dernier enfant :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érifiez si le dernier nœud est un nœud d'élément function get_lastchild(n) { var x = n.lastChild; while (x.nodeType != 1) { x = x.previousSibling; } return x; } function myFunction(xml) { var x, i, txt, firstNode, xmlDoc; xmlDoc = xml.responseXML; x = xmlDoc.documentElement; txt = ""; firstNode = get_lastchild(x); for (i = 0; i < firstNode.childNodes.length; i++) { if (firstNode.childNodes[i].nodeType == 1) { // Seulement les nœuds d'élément sont traités txt += firstNode.childNodes[i].nodeName +"}}" " = " + firstNode.childNodes[i].childNodes[0].nodeValue + "<br>"; } } document.getElementById("demo").innerHTML = txt; }