В этой главе мы рассматриваем узлы дерева документа Attr, Element, CharacterData, Text и Comment.
Атрибут: интерфейс Attr
Поддержка : | | Поддерживается для XML-документов (XMLDOMAttribute); для HTML-документов поддерживается частично. | | | Соответствует стандарту. |
Интерфейс Attr соответствует атрибуту элемента XML- или HTML-документа. Он наследует интерфейс Node, но поскольку атрибуты фактически не являются детьми элемента, который они описывают, DOM не считает их частью дерева документа. Поэтому значения свойств parentNode, previousSibling и nextSibling для атрибутов всегда равны null.
В XML значение атрибута представляется узлами типа Text и EntityReference,поскольку здесь значения атрибутов могут содержать ссылки на разделы. В HTML значением атрибутаявляется просто строка типа DOMString.
Свойства интерфейса AttrСвойство | Изменяемое | Модель | Описание |
---|
name | Нет | DOM 1 | Имя атрибута. | ownerElement | Нет | DOM 2 | Элемент-владелец атрибута. | specified | Нет | DOM 1 | Явно ли задан атрибут. | value | Да | DOM 1 | Значение атрибута. |
Свойство name
Синтаксис: атрибут.name Изменяемое: нет
Поддержка : | | Только для XML-документов. | | | Соответствует стандарту. |
Свойство name возвращает строку, содержащую имя данного атрибута. Введение этого свойства в DOM не вполне обоснованно, т. к. его значение всегда совпадает со значением свойства nodeName. По этой причине MSHTML это свойство не поддерживает, и в целях совместимости лучше пользоваться свойством nodeName.
Свойство ownerElement
Синтаксис: атрибут.ownerElement Изменяемое: нет
Поддержка : | | Не поддерживается. | | | Соответствует стандарту. |
Свойство ownerElement возвращает указатель на узел Element, атрибутом которого является данный атрибут, или null, если такого элемента нет. Пример: оператор
alert(document.body.attributes[0].ownerElement.tagName)
выведет на экран строку BODY.
Свойство specified
Синтаксис: атрибут.specified Изменяемое: нет
Поддержка : | | Соответствует стандарту. | | | Соответствует стандарту. |
Свойство specified возвращает true, если значение атрибута было явно задано в тексте документа или в сценарии, и false в противном случае. Точнее говоря:
если атрибуту присвоено значение в документе или сценарии, то specified равно true, а значением атрибута является присвоенное значение;
если атрибуту не присваивалось значение в документе или сценарии и он имеет значение по умолчанию, заданное в DTD, то specified равно false, а значением атрибута является значение по умолчанию;
если атрибуту не присваивалось значение в документе или сценарии и он имеет значение #IMPILED в DTD, то этот атрибут не включается в дерево документа;
если свойство атрибута ownerElement равно null, то specified равно true.
Свойство value
Синтаксис: атрибут.value Изменяемое: да Исключения: NO_MODIFICATION_ALLOWED_ERR (при записи)
Поддержка : | | Только для XML-документов. | | | Соответствует стандарту. |
Свойство value позволяет задавать и считывать значение данного атрибута. В HTML его значение всегда совпадает со значением свойства nodeValue. По этой причине MSHTML это свойство не поддерживает, и в целях совместимости лучше пользоваться свойством nodeValue.
В XML значение атрибута может содержать ссылки на разделы, поэтому здесь ситуация немного сложнее. При задании значения этого свойства создается новый узел Text, в который заносится содержимое новой строки без ее анализа XML-процессором. При чтении этого свойства ссылки на разделы заменяются на соответствующий текст, а затем возвращается результирующая строка.
1 2 3 4
8 8 8
| |