13. Объектная модель документа. DOM W3C

Иерархия интерфейсов DOM W3C

Модель W3C определяет в DOM не классы, а интерфейсы. Интерфейс — это набор свойств и методов. Этим набором обладает объект, поддерживающий интерфейс с данным именем.

Интерфейс Document

Корнем DOM является объект document. Этот объект является узлом, поэтому все свойства и методы интерфейса Node ему принадлежат. Но для этого узла (и только для него) свойство nodeType, равное 9 (константа Node.DOCUMENT_NODE), определяет еще и интерфейс Document. Важные свойства и методы этого интерфейса (а также подинтерфейса HTMLDocument) описаны в разделе Document.

Иерархия интерфейсов DOM W3C

Иерархия интерфейсов DOM W3C

Разработчики W3C разработали DOM таким образом, чтобы эта модель документа была универсальной, не зависящей от языка, при помощи которого документ создан. В частности, интерфейс Document работает и для HTML, и для XML, но для HTML предусмотрен специальный подинтерфейс HTMLDocument, который вводит дополнительные свойства и методы, предназначенный для реализаций документа на HTML. В этом подинтерфейсе, в частности, если полезное свойство body, которое ссылается на объект, построенный для элемента BODY.

Обратим внимание — иерархия DOM-интерфейсов не есть иерархия DOM-объектов. Иерархия DOM-объектов отражает иерархию элементов конкретной HTML-страницы, а иерархия интерфейсов отражает вложенный характер наборов свойств и методов, которыми эти объекты обладают.

Так, например, элемент TABLE на HTML-странице отображается в соответствующий объект DOM-дерева. Этот объект является узлом, поэтому он обладает всеми свойствами и методами интерфейса Node (например, свойством nodeType, значение которого для таблицы устанавливается в Node.ELEMENT_NODE, и методом appendChild, с помощью которого таблицу можно дополнить новой строкой). Так как этот узел создан для элемента, он дополнительно обладает интерфейсом Element. Кроме того, мы записываем страницу на языке HTML, значит, наш узел обладает интерфейсом HTMLElement и, наконец, интерфейсом HTMLTableElement, предусмотренным специально для HTML-таблиц (в этот интерфейс входят, например, свойство rows и методы insertRow и deleteRow).

Теперь, когда общие принципы построения иерархии интерфейсов DOM W3C понятны, продолжим знакомство с самыми востребованными свойствами и методами конкретных интерфейсов, а за полным описанием надо обращаться к спецификациям W3C или к соответствующим справочникам (например, к книге Девида Флэнагана «JavaScript. Подробное руководство» (пятое издание, «Символ» 2008 год).

Интерфейс Element

Смотрите раздел Element.

Интерфейс CharacterData

Этот интерфейс реализует общую функциональность узлов Text и Comment (соответственно интерфейсы Text и Comment являются подинтерфейсами интерфейса CharacterData).

Смотрите раздел CharacterData.

На этом заканчиваем утомительный, но полезный обзор интерфейсов DOM W3C и переходим к рассмотрению примеров.