Основным инструментом работы и динамических изменений на странице является DOM (Document Object Model) – объектная модель, используемая для XML/HTML-документов. Согласно DOM-модели, документ является иерархией. Проще говоря, DOM – это представление документа в виде дерева тегов. Это дерево образуется за счет вложенной структуры тегов плюс текстовые фрагменты страницы, каждый из которых образует отдельный узел.
Пример.
Построим дерево DOM для следующего документа.
<html>
<head>
<title>Моя страница</title>
</head>
<body>
Текст моей прекрасной страницы
</body>
</html>
Самый внешний тег – <html>, поэтому дерево начинает расти от него. Внутри <html> находятся два узла: <head> и <body>, они становятся дочерними узлами для <html>.
Теги образуют узлы-элементы (element node). Текст представлен текстовыми узлами (text node).
Пример посложнее.
<html>
<head>
<title>ДМФ</title>
</head>
<body>
<p>Правда о ДМФ</p>
<ol>
<li>ДМФ – праздник веселый</li>
<li>но тяжелый</li>
</ol>
</body>
</html>
Корневым элементом иерархии является html. У него есть два потомка. Первый – head, второй – body. И так далее, каждый вложенный тег является потомком тега выше:
Некоторые браузеры воспринимают текст, состоящий из одних пробельных символов, как текстовый узел.
Зачем, кроме красивых рисунков, нужна иерархическая модель DOM? Каждый DOM-элемент является объектом и предоставляет свойства для манипуляции своим содержимым, для доступа к родителям и потомкам.
Для манипуляций с DOM моделью страницы используется объект document. Используя document, можно получать нужный элемент дерева и менять его содержание.