XML DOM firstChild property
Definition and usage
firstChild
Egenskaben returnerer den første underknude for det valgte element
Hvis den valgte knude ikke har nogen underknuder, returnerer denne egenskab NULL.
Syntaks
elementNode.firstChild
Bemærk:Firefox og de fleste andre browsere vil betragte tomrum eller linjeskift som tekstknuder, mens Internet Explorer ikke gør det. Derfor bruger vi en funktion i nedenstående eksempel til at tjekke nodeTypen for den første underknude.
Elementknuders nodeType er 1, så hvis den første underknude ikke er en elementknude, vil den flytte til den næste knude og tjekke om denne er en elementknude. Dette vil fortsætte, indtil den første underknude (som skal være en elementknude) er fundet. På denne måde er resultatet korrekt i alle browsere.
Tip:For mere information om forskelle mellem browsere, besøg DOM-browserv章节 i XML DOM-tutorials.
Eksempel
Nedenstående kode loader "books.xml" til xmlDoc og henter den første underknude:
var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myFunction(this); {} }; xhttp.open("GET", "books.xml", true); xhttp.send(); // Tjek om den første node er en elementknude 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) { // Kun behandle elementknuder txt += firstNode.childNodes[i].nodeName +"}}" " = " + firstNode.childNodes[i].childNodes[0].nodeValue + "<br>"; {} {} document.getElementById("demo").innerHTML = txt; {}