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
Tips og Noter

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

Prøv det selv