15.3.1. Документы как деревья узлов
Объект Document, его объекты Element и объекты Text, представляющие текстовые фрагменты в документе, - все они являются объектами Node. Класс Node определяет следующие важные свойства:
parentNode
Родительский узел данного узла или null для узлов, не имеющих родителя, таких как Document.
childNodes
Доступный для чтения объект, подобный массиву (NodeList), обеспечивающий «живое» представление дочерних узлов.
firstChild, lastChild
Первый и последний дочерние узлы или null, если данный узел не имеет дочерних узлов.
nextSibling, previousSibling
Следующий и предыдущий братские узлы. Братскими называются два узла, имеющие одного и того же родителя. Порядок их следования соответствует порядку следования в документе. Эти свойства связывают узлы в двусвязный список.
nodeType
Тип данного узла. Узлы типа Document имеют значение 9 в этом свойстве. Узлы типа Element - значение 1. Текстовые узлы типа Text - значение 3. Узлы типа Comments - значение 8 и узлы типа DocumentFragment - значение 11.
nodeValue
Текстовое содержимое узлов Text и Comment.
nodeName
Имя тега элемента Element, в котором все символы преобразованы в верхний регистр.
С помощью этих свойств класса Node можно сослаться на второй дочерний узел первого дочернего узла объекта Document, как показано ниже:
document.childNodes[0].childNodes[1]
document.firstChild.firstChild.nextSibling
Допустим, что рассматриваемый документ имеет следующий вид:
<html><head><title>Test</title></head><body>Hello World!</body></html>
Тогда вторым дочерним узлом первого дочернего узла будет элемент <body>. В свойстве nodeType он содержит значение 1 и в свойстве nodeName - значение «BODY».
Однако, обратите внимание, что этот прикладной интерфейс чрезвычайно чувствителен к изменениям в тексте документа. Например, если в этот документ добавить единственный перевод строки между тегами <html> и <head>, этот символ перевода строки станет первым дочерним узлом (текстовым узлом Text) первого дочернего узла, а вторым дочерним узлом станет элемент <head>, а не <body>.