Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курс полный.doc
Скачиваний:
8
Добавлен:
15.08.2019
Размер:
756.74 Кб
Скачать

Представление документа в виде древовидной структуры

В DOM документ представляется в виде древовидной структуры (рис. 19), являющейся одной из наиболее употребительных структур в программировании. Это обеспечивает унифицированный способ навигации по документу.

Рис. 19. Представление HTML-документа в виде древовидной структуры

Навигация по документу

В модели DOM к элементу можно обратиться непосредственно по его идентификатору id, воспользовавшись методом getElementById объекта Document:

<html> <head> <title>Основы DOM</title> </head> <body> <h1 id = "head">Основы DOM</h1> <p>A Text</p> <script language = "JavaScript"> var a = document.getElementById("head"); alert(a); </script> </body> </html>

Для получения коллекции всех элементов, соответствующих какому-либо тегу, используется метод объекта Document – getElementsByTagName. Например, var a = document.getElementsByTagName("TD") присвоит переменной a коллекцию всех элементов <td>. Обратите внимание, что имя элемента следует писать прописными буквами ("TD"). Рассмотрим пример использования метода getElementsByTagName:

<html> <head> <title>Основы DOM</title> </head> <body> <h1 id = "head">Основы DOM</h1> <table border = "2"> <tr> <td>1,1</td> <td>1,2</td> </tr> <tr> <td>2,1</td> <td>2,2</td> </tr> </table> <script language = "JavaScript"> var a = document.getElementsByTagName("TD"); a.item(0).style.color = "red"; a.item(3).style.fontFamily = "arial"; a.item(3).style.color = "green"; </script> </body> </html>

Чтобы воспользоваться преимуществом древовидной структуры, принятой в DOM для представления документа, следует использовать навигационные атрибуты (рис. 20), представленные в табл. 11.

Рис. 20. Навигационные атрибуты объекта Node

Таблица 11

Навигационные атрибуты объекта Node

Атрибут

Описание

firstChild

Возвращает первый узел-потомок

lastChild

Возвращает последний узел-потомок

previousSibling

Возвращает предыдущий соседний узел, имеющий с текущим одного родителя

nextSibling

Возвращает следующий соседний узел, имеющий с текущим одного родителя

parentNode

Возвращает родительский узел

ownerDocument

Возвращает корневой узел документа, содержащий текущей узел

nodeName

Возвращает имя узла

nodeValue

Возвращает значение узла в текстовом формате

nodeType

Возвращает тип узла в виде числа

В следующем примере осуществляется проход по древовидной структуре документа:

<html> <head> <title>Навигация по документу</title> </head> <body> <h1>Изучение навигации по документу</h1> <p>Абзац 1</p> <p>Абзац 2</p> <script language = "JavaScript"> var temp = document.documentElement; temp = temp.firstChild; alert(temp.tagName); if(temp.nextSibling == 3) temp = temp.nextSibling.next.Sibling; else temp = temp.nextSibling; alert(temp.tagName); temp = temp.firstChild; alert(temp.tagName); temp.style.color = "red"; if(temp.nextSibling == 3) temp = temp.nextSibling.nextSibling; else temp = temp.nextSibling; alert(temp.tagName); temp.style.color = "blue"; temp = temp.parentNode; alert(temp.tagName); </script> </body> </html>