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
Conseils et Notes

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;
}

Essayer personnellement