Атрибут lastChild XML DOM
Определение и использование
lastChild
Атрибут возвращает последний подузел выбранного элемента.
Если выбранный узел не имеет подузлов, то этот атрибут возвращает NULL.
Синтаксис
elementNode.lastChild
Примечание:Firefox и большинство других браузеров считают пробельные символы или переводы строк текстовыми узлами, в то время как Internet Explorer этого не делает. Поэтому в следующем примере используется функция для проверки типа узла последнего подузла.
Узел элемента имеет nodeType равным 1, поэтому если последний подузел не является элементом, он перемещается к предыдущему узлу и проверяется, является ли этот узел элементом. Это продолжается до тех пор, пока не будет найден последний подузел (должен быть элементом). Таким образом, результат будет правильным во всех браузерах.
Совет:Для получения更多信息 о различиях между браузерами обратитесь к разделу DOM браузеров в руководстве по XML DOM.
Пример
Следующий код загружает "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 x, i, txt, firstNode, xmlDoc; xmlDoc = xml.responseXML; x = xmlDoc.documentElement; txt = ""; firstNode = get_lastchild(x); for (i = 0; i < firstNode.childNodes.length; i++) { if (firstNode.childNodes[i].nodeType == 1) { // Обработка только элементарных узлов txt += firstNode.childNodes[i].nodeName +"" " = " + firstNode.childNodes[i].childNodes[0].nodeValue + "<br>"; {} {} document.getElementById("demo").innerHTML = txt; {}