XML DOM firstChild-attribut

Definering och användning

firstChild Egenskapen returnerar den första undernoden för det valda elementet

Om den valda noden inte har några undernoder returnerar denna egenskap NULL.

Syntax

elementNode.firstChild
Tips och Noteringar

Observera:Firefox och de flesta andra webbläsare betraktar tomma utrymme eller radbrytningar som textnoder, medan Internet Explorer inte gör det. Därför används en funktion i följande exempel för att kontrollera nodtypen för den första undernoden.

Elementnodernas nodeType är 1, så om den första undernoden inte är en elementnod, flyttas den till nästa nod och kontrolleras om denna nod är en elementnod. Detta fortsätter tills den första undernoden (måste vara en elementnod) hittas. På så sätt är resultatet korrekt i alla webbläsare.

Tips:För mer information om skillnader mellan webbläsare, besök DOM-biblioteket i XML DOM-tutorials.

Exempel

Nedanstående kod laddar "books.xml" till xmlDoc och hämtar den första undernoden:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
   if (this.readyState == 4 && this.status == 200) {
       myFunction(this);
   }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
// Kontrollera om den första noden är en elementnod
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) {
            // Bara elementnoder hanteras
            txt += firstNode.childNodes[i].nodeName +"}}"
            " = " +
            firstNode.childNodes[i].childNodes[0].nodeValue + "<br>";
        }
    }
    document.getElementById("demo").innerHTML = txt;
}

Prova själv