Propiedad lastChild del XML DOM
Definición y uso
lastChild
La propiedad devuelve el último hijo del documento.
Sintaxis
documentObject.lastChild
Nota:Firefox y la mayoría de los otros navegadores consideran los espacios en blanco o saltos de línea como nodos de texto, mientras que Internet Explorer no lo hace. Por lo tanto, en el siguiente ejemplo, utilizamos una función para verificar el tipo de nodo del último hijo.
Los nodos de elemento tienen nodeType 1, por lo tanto, si el último hijo no es un nodo de elemento, se desplazará al nodo anterior y se verificará si ese nodo es un nodo de elemento. Esto continuará hasta encontrar el último hijo (debe ser un nodo de elemento). De esta manera, los resultados son correctos en todos los navegadores.
提示:如需了解有关浏览器之间差异的更多信息,请访问 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_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); document.getElementById("demo").innerHTML = "Nodename: " + x.nodeName +" " (nodetype: " + x.nodeType + ")<br>"; {}
例子 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_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); // 获取根元素的第一个子节点 var y = get_firstchild(xmlDoc.documentElement); document.getElementById("demo").innerHTML = "Nodename: " + x.nodeName +" " (nodetype: " + x.nodeType + ")<br>" + "Nodename: " + y.nodeName + " (nodetype: " + y.nodeType + ")<br>"; {}