Attribut firstChild du XML DOM

Définition et utilisation

firstChild L'attribut retourne le premier enfant du document.

Syntaxe

documentObject.firstChild
Conseils et Notes

Remarque :Firefox et la plupart des autres navigateurs considèrent les espaces ou les retours chariots comme des nœuds de texte, tandis que Internet Explorer ne le fait pas. Par conséquent, dans l'exemple suivant, nous utilisons une fonction pour vérifier le type de nœud du premier enfant.

Les éléments de type node ont un nodeType de 1, donc si le premier enfant n'est pas un élément, il se déplace vers le prochain élément et vérifie si ce dernier est un élément. Cela se poursuit jusqu'à ce que le premier enfant trouvé (doit être un élément) soit trouvé. De cette manière, le résultat est correct dans tous les navigateurs.

提示:如需了解有关浏览器之间差异的更多信息,请访问 XML DOM 教程中的 DOM 浏览器章节。

实例

例子 1

下面的代码将 "books.xml" 加载到 xmlDoc 中,并显示第一个子节点的节点名称和节点类型:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
   if (this.readyState == 4 && this.status == 200) {
       myFunction(this);
   }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
// 检查第一个节点是否为元素节点
function get_firstchild(n) {
    var x = n.firstChild;
    while (x.nodeType != 1) {
        x = x.nextSibling;
    }
    return x;
}
function myFunction(xml) {
    var xmlDoc = xml.responseXML;
    var x = get_firstchild(xmlDoc);
    document.getElementById("demo").innerHTML =
    "Nodename: " + x.nodeName +
    " (nodetype: " + x.nodeType + ")<br>";
}

Essayez-le vous-même

例子 2

获取文档的最后一个子节点:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        myFunction(this);
    }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
// 检查最后一个节点是否是元素节点
function get_lastchild(n) {
    var x = n.lastChild;
    while (x.nodeType != 1) {
        x = x.previousSibling;
    }
    return x;
}
function myFunction(xml) {
    var xmlDoc = xml.responseXML;
    // 获取文档的最后一个子节点
    var x = get_lastchild(xmlDoc);
    // 获取根元素的最后一个子节点
    var y = get_lastchild(xmlDoc.documentElement);
    document.getElementById("demo").innerHTML =
    "Nodename: " + x.nodeName + 
    " (nodetype: " + x.nodeType + ")<br>" +
    "Nodename: " + y.nodeName + 
    " (nodetype: " + y.nodeType + ")<br>";
}

Essayez-le vous-même