XML DOM свойство firstChild
Определение и использование
firstChild
Свойство возвращает первый подузел документа.
Синтаксис
documentObject.firstChildВнимание:Firefox и большинство других браузеров считают пробелы или переводы строк узлами текста, в то время как Internet Explorer этого не делает. Поэтому в следующем примере мы используем функцию для проверки типа узла первого подузла.
Узел элемента имеет nodeType равным 1, поэтому если первый подэлемент не является элементом, он перемещается к следующему узлу и проверяется, является ли этот узел элементом. Это продолжается до тех пор, пока не будет найден первый подэлемент (должен быть элементом). Таким образом, результат будет одинаковым во всех браузерах.
Совет:Для получения дополнительной информации о различиях между браузерами обратитесь к разделу "DOM браузеры" в учебнике XML 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 +"}} " (тип узла: " + 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_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>"; }