Atrybut firstChild XML DOM

Definicja i użycie

firstChild Właściwość zwraca pierwszy węzeł potomny wybranego elementu

Jeśli wybrany węzeł nie ma węzłów potomnych, ta właściwość zwraca NULL.

Gramatyka

elementNode.firstChild
Wskazówki i Notatki

Uwaga:Firefox i większość innych przeglądarek traktują puste lub znaki nowej linii jako węzły tekstowe, podczas gdy Internet Explorer nie. Dlatego w poniższym przykładzie używamy funkcji, aby sprawdzić typ węzła pierwszego węzła potomnego.

nodeType elementu węzła wynosi 1, więc jeśli pierwszy węzeł potomny nie jest węzłem elementowym, przechodzi do następnego węzła i sprawdza, czy jest to węzeł elementowy. To będzie kontynuowane, aż znajdzie pierwszy węzeł potomny (musi być węzłem elementowym). W ten sposób wynik jest poprawny we wszystkich przeglądarkach.

Wskazówka:Aby uzyskać więcej informacji na temat różnic między przeglądarkami, odwiedź rozdział DOM przeglądarek w podręczniku XML DOM.

Przykład

Poniższy kodładuje "books.xml" do xmlDoc i pobiera pierwszy węzeł potomny:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
   if (this.readyState == 4 && this.status == 200) {
       myFunction(this);
   }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
// Sprawdzenie, czy pierwszy węzeł jest węzłem elementowym
function get_firstchild(n) {
    var x = n.firstChild;
    while (x.nodeType != 1) {
        x = x.nextSibling;
    }
    return x;
}
function myFunction(xml) {
    var x, i, txt, firstNode, xmlDoc;
    xmlDoc = xml.responseXML;
    x = xmlDoc.documentElement;
    txt = "";
    firstNode = get_firstchild(x);
    for (i = 0; i < firstNode.childNodes.length; i++) {
        if (firstNode.childNodes[i].nodeType == 1) {
            // Przetwarzanie tylko węzłów elementowych
            txt += firstNode.childNodes[i].nodeName +""}
            " = " +
            firstNode.childNodes[i].childNodes[0].nodeValue + "<br>";
        }
    }
    document.getElementById("demo").innerHTML = txt;
}

Spróbuj sam