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