После рассмотрения базовых интерфейсов мы переходим к описанию объектной модели HTML-документов в соответствии с DOM 2 HTML. Эта модель основана на следующих интерфейсах:
Описанные в этой главе интерфейсы не являются обязательными для реализации DOM. Если реализация их поддерживает, то рекомендуется, чтобы ее метод DOMImplementation.hasFeature возвращал true при соответствующем запросе.
Реализация DOM HTML: интерфейс HTMLDOMImplementation
Поддержка : | | Не поддерживается. | | | Не поддерживается. |
Интерфейс HTMLDOMImplementation является производным от интерфейса DOMImplementation. Он наследует все его свойства и методы, и имеет единственный дополнительный метод createHTMLDocument, позволяющий нам создавать объекты типа HTMLDocument.
Метод createHTMLDocument
Синтаксис: объект.createHTMLDocument(title) Аргументы: title - выражение типа DOMString Результат: новый объект HTMLDocument Исключения: нет
Поддержка : | | Не поддерживается. | | | Не поддерживается. |
Метод createHTMLDocument создает новый объект HTMLDocument и возвращает указатель на него. Дерево нового документа состоит из четырех элементов: HTML, HEAD, TITLE и BODY. Аргумент title содержит титул документа, который становится содержимым элемента TITLE как его сыновний узел типа Text.
Коллекции: интерфейс HTMLCollection
Поддержка : | | Соответствует стандарту. | | | Соответствует стандарту. |
Интерфейс HTMLCollection обобщает интерфейс NodeList таким образом, что доступ к элементам списка узлов становится возможен как по их номеру в списке, так и по их имени. Под именем элемента здесь понимается значение его атрибута id или name. Коллекции являются живыми, т. е. любое изменение документа влечет автоматическое изменение всех связанных с ним коллекций.
Этот интерфейс имеет единственное свойство length, возвращающее количество узлов в списке, и два метода: item, возвращающий элемент списка с заданным номером (элементы списка узлов нумеруются, начиная с нуля) и namedItem, возвращающий элемент списка с заданным именем.
Свойство length
Синтаксис: коллекция.length Изменяемое: нет
Поддержка : | | Соответствует стандарту. | | | Соответствует стандарту. |
Свойство length возвращает количество элементов в коллекции. Допустимые индексы элементов списка лежат в диапазоне от 0 до length-1 включительно. Следующий пример выводит на экран количество элементов в дереве документа:
alert(document.getElementsByTagName("*").length); // в Gecko (стандарт) alert(document.all.length); // в Internet Explorer
Метод item
Синтаксис: коллекция.item(index) Аргументы: index - числовое выражение Результат: узел Node или null Исключения: нет
Поддержка : | | Соответствует стандарту. | | | Соответствует стандарту. |
Метод item возвращает элемент коллекции с заданным индексом в качестве результата. Если индекс выходит за пределы диапазона элементов списка, то возвращается null. Элементы коллекции нумеруются в обратном порядке прохождения дерева, т. е. от листьев к корню. Пример: оператор
alert(document.childNodes.item(0).nodeName);
выведет на экран текст HTML.
JavaScript позволяет нам записать обращение к элементу коллекции более компактно. Предыдущий оператор может выглядеть так:
alert(document.childNodes[0].nodeName);
Internet Explorer поддерживает еще одну форму обращения к элементу списка, а именно:
alert(document.childNodes(0).nodeName);
Однако, эта форма является нестандартной, и ей лучше не пользоваться.
Метод namedItem
Синтаксис: коллекция.namedItem(name) Аргументы: name - выражение типа >DOMString Результат: узел Node или null Исключения: нет
Поддержка : | | Реализован нестандартно. | | | Соответствует стандарту. |
Метод namedItem возвращает элемент коллекции с заданным именем в качестве результата. Сначала ищется элемент, у которого атрибут id равен name; в случае неудачи ищется элемент, у которого атрибут name равен name. Если и такой элемент не найден, то возвращается null. Пример:
<IMG name="img1" src="file1.gif"> ... <SCRIPT> alert(document.images.namedItem("img1").src); </SCRIPT>
Оператор alert выведет в Gecko на экран спецификацию файла file1.gif. Internet Explorer не поддерживает стандартный синтаксис этого метода, поэтому для него данный оператор должен выглядеть так:
alert(document.images["img1"].src);
Приведенная форма приемлема и для Gecko. Internet Explorer поддерживает еще одну форму обращения к именованному элементу списка, а именно:
alert(document.images("img1").src);
Однако, эта форма является нестандартной, и ей лучше не пользоваться.
1 2 3
8 8 8
|