HTML Diff
4 added 12 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>Фронтенд-разработка непрерывно совершенствуются. Постоянно появляются новые технологии, с помощью которых создаются веб-страницы и браузерные движки для отображения этих самых веб-страниц. Буквально каждый год выпускаются новые версии JavaScript-фреймворков, которые исправляют недочеты языка и делают разработку веб-страниц более комфортной.</p>
1 <p>Фронтенд-разработка непрерывно совершенствуются. Постоянно появляются новые технологии, с помощью которых создаются веб-страницы и браузерные движки для отображения этих самых веб-страниц. Буквально каждый год выпускаются новые версии JavaScript-фреймворков, которые исправляют недочеты языка и делают разработку веб-страниц более комфортной.</p>
2 <p>Тем не менее основа всей фронтенд-разработки остается незыблемой. Когда пользователь открывает веб-страницу, браузер совершает одни и те же действия:</p>
2 <p>Тем не менее основа всей фронтенд-разработки остается незыблемой. Когда пользователь открывает веб-страницу, браузер совершает одни и те же действия:</p>
3 <ul><li>Получает исходный текст этой страницы с удаленного сервера в формате HTML</li>
3 <ul><li>Получает исходный текст этой страницы с удаленного сервера в формате HTML</li>
4 <li>Производит ее разбор - еще его называют<strong>парсингом</strong></li>
4 <li>Производит ее разбор - еще его называют<strong>парсингом</strong></li>
5 <li>Строит из полученной информации модель документа и отображает пользователю результат на экране в графическом виде</li>
5 <li>Строит из полученной информации модель документа и отображает пользователю результат на экране в графическом виде</li>
6 </ul><p>Эта модель документа - это особый вид дерева, которое можно читать и изменять при помощи JavaScript так, чтобы изменение сразу отображались пользователь на экране. Сегодня мы детально разберем особенности этих деревьев, на которых и построены современные сайты.</p>
6 </ul><p>Эта модель документа - это особый вид дерева, которое можно читать и изменять при помощи JavaScript так, чтобы изменение сразу отображались пользователь на экране. Сегодня мы детально разберем особенности этих деревьев, на которых и построены современные сайты.</p>
7 <h2>Свойства DOM-дерева</h2>
7 <h2>Свойства DOM-дерева</h2>
8 <p>Модель документа, которую браузер строит после парсинга, называется<strong>DOM</strong>- это сокращение от<em>Document Object Model</em>(объектная модель документа).</p>
8 <p>Модель документа, которую браузер строит после парсинга, называется<strong>DOM</strong>- это сокращение от<em>Document Object Model</em>(объектная модель документа).</p>
9 <p>Это интерфейсный подход, который был придуман для поддержки работы с документами при помощи языков программирования. В таком подходе предполагается, что каждый элемент документа представляет собой некий<strong>объект</strong>- блок со своими определенными свойствами и ссылками на другие блоки.</p>
9 <p>Это интерфейсный подход, который был придуман для поддержки работы с документами при помощи языков программирования. В таком подходе предполагается, что каждый элемент документа представляет собой некий<strong>объект</strong>- блок со своими определенными свойствами и ссылками на другие блоки.</p>
10 <p>Рассмотрим на примере разбиение страницы на такие блоки:</p>
10 <p>Рассмотрим на примере разбиение страницы на такие блоки:</p>
11 <p>Страницу с этого рисунка можно представить в виде HTML-разметки:</p>
11 <p>Страницу с этого рисунка можно представить в виде HTML-разметки:</p>
12 <p>Обратите внимание, что элементы размещаются внутри друг друга и обладают дополнительными свойствами, которые оформляются в виде<strong>HTML-атрибутов</strong>. Описание данных при помощи различных уровней вложенности - это один из способов описания древовидных структур, с которыми мы познакомились на предыдущих уроках.</p>
12 <p>Обратите внимание, что элементы размещаются внутри друг друга и обладают дополнительными свойствами, которые оформляются в виде<strong>HTML-атрибутов</strong>. Описание данных при помощи различных уровней вложенности - это один из способов описания древовидных структур, с которыми мы познакомились на предыдущих уроках.</p>
13 <p>Следовательно, такой документ можно представить в виде дерева:</p>
13 <p>Следовательно, такой документ можно представить в виде дерева:</p>
14 <p>Как видите, вложенные элементы превратились в дочерние узлы, а HTML-атрибуты - в набор значений, хранящихся в узле. Этот вид документа как раз и называется<strong>DOM-деревом</strong>.</p>
14 <p>Как видите, вложенные элементы превратились в дочерние узлы, а HTML-атрибуты - в набор значений, хранящихся в узле. Этот вид документа как раз и называется<strong>DOM-деревом</strong>.</p>
15 <p>DOM-дерево - это один из способов представления одного и того же документа. Для браузера он имеет вид HTML-разметки, а для человека - графического представления, основанного на вложенности блоков друг в друга.</p>
15 <p>DOM-дерево - это один из способов представления одного и того же документа. Для браузера он имеет вид HTML-разметки, а для человека - графического представления, основанного на вложенности блоков друг в друга.</p>
16 <p>Древовидное представление документа способствовало развитию JavaScript - так в языке появилась функциональность для управления числом и составом элементов веб-страницы. Еще DOM-дерево подходит для описания интерфейсов. Также его можно использовать в работе с XML и другими способами описания документа.</p>
16 <p>Древовидное представление документа способствовало развитию JavaScript - так в языке появилась функциональность для управления числом и составом элементов веб-страницы. Еще DOM-дерево подходит для описания интерфейсов. Также его можно использовать в работе с XML и другими способами описания документа.</p>
17 <h2>Операции над DOM-деревом</h2>
17 <h2>Операции над DOM-деревом</h2>
18 <p>Получение и изменение элементов страницы - это довольно частые операции, которые мы выполняем с помощью JavaScript. Множество фронтенд-задач как раз и заключаются в том, чтобы получить узел и изменить его свойства - например, поправить фон или текст. Все эти задачи выполняются через DOM-дерево документа.</p>
18 <p>Получение и изменение элементов страницы - это довольно частые операции, которые мы выполняем с помощью JavaScript. Множество фронтенд-задач как раз и заключаются в том, чтобы получить узел и изменить его свойства - например, поправить фон или текст. Все эти задачи выполняются через DOM-дерево документа.</p>
19 <p>Далее мы попробуем получить узел<em>P</em>из нашего примера.</p>
19 <p>Далее мы попробуем получить узел<em>P</em>из нашего примера.</p>
20 <p>Есть четыре способа получить элемент:</p>
20 <p>Есть четыре способа получить элемент:</p>
21 <ul><li>Поиск по идентификатору:</li>
21 <ul><li>Поиск по идентификатору:</li>
22 - </ul><p><strong>Javascript</strong></p>
22 + </ul><ul><li>Поиск по названию HTML-тега:</li>
23 - <ul><li>Поиск по названию HTML-тега:</li>
23 + </ul><ul><li>Поиск по имени CSS-класса:</li>
24 - </ul><p><strong>Javascript</strong></p>
24 + </ul><ul><li>Поиск с помощью CSS-селекторов:</li>
25 - <ul><li>Поиск по имени CSS-класса:</li>
25 + </ul><p>Корневым узлом документа будет узел с тегом html. После получения узла мы сможем воспользоваться<strong>навигационными свойствами</strong>, которые позволяют быстро переходить к соседним элементам. Эти свойства удобно показать так:</p>
26 - </ul><p><strong>Javascript</strong></p>
 
27 - <ul><li>Поиск с помощью CSS-селекторов:</li>
 
28 - </ul><p><strong>Javascript</strong></p>
 
29 - <p>Корневым узлом документа будет узел с тегом html. После получения узла мы сможем воспользоваться<strong>навигационными свойствами</strong>, которые позволяют быстро переходить к соседним элементам. Эти свойства удобно показать так:</p>
 
30 <p>Как следует из рисунка, мы можем работать с соседними узлами, обращаясь к свойствам с соответствующими именами. Например, чтобы получить набор дочерних элементов, можно использовать такой код:</p>
26 <p>Как следует из рисунка, мы можем работать с соседними узлами, обращаясь к свойствам с соответствующими именами. Например, чтобы получить набор дочерних элементов, можно использовать такой код:</p>
31 - <p><strong>Javascript</strong></p>
 
32 <p>Теперь рассмотрим добавление нового узла в дерево. Чтобы это сделать, нужно программно создать новый элемент и добавить его в набор дочерних элементов родительского узла. Рассмотрим добавление на примере элемента с тегом div:</p>
27 <p>Теперь рассмотрим добавление нового узла в дерево. Чтобы это сделать, нужно программно создать новый элемент и добавить его в набор дочерних элементов родительского узла. Рассмотрим добавление на примере элемента с тегом div:</p>
33 - <p><strong>Javascript</strong></p>
 
34 <p>Чтобы удалить элемент, можно вызвать метод remove() у найденного элемента:</p>
28 <p>Чтобы удалить элемент, можно вызвать метод remove() у найденного элемента:</p>
35 - <p><strong>Javascript</strong></p>
 
36 <p>Выше мы рассмотрели модификации состава узлов и навигацию между ними, но это еще не все. Еще мы можем модифицировать любой HTML-атрибут или значение выбранного узла, что организовывать интерактивные страницы.</p>
29 <p>Выше мы рассмотрели модификации состава узлов и навигацию между ними, но это еще не все. Еще мы можем модифицировать любой HTML-атрибут или значение выбранного узла, что организовывать интерактивные страницы.</p>
37 <p>Более детально эта тема разбирается в курсах, посвященных программированию на JavaScript. А сейчас посмотрим на небольшой пример, описывающий модификацию HTML-атрибута:</p>
30 <p>Более детально эта тема разбирается в курсах, посвященных программированию на JavaScript. А сейчас посмотрим на небольшой пример, описывающий модификацию HTML-атрибута:</p>
38 - <p><strong>Javascript</strong></p>
 
39 <h2>Выводы</h2>
31 <h2>Выводы</h2>
40 <p>В этом уроке мы изучили DOM-деревья - это особый вид деревьев, который стал стандартом взаимодействия с документами при работе с HTML, XML и другими языками разметки. Такие деревья легли в основу современного веб-серфинга и работы с другими документами - например, формата Word. С помощью этого подхода мы можем модифицировать веб-страницу на лету, не тратя время и силы на постоянную отправку запросов на сервер.</p>
32 <p>В этом уроке мы изучили DOM-деревья - это особый вид деревьев, который стал стандартом взаимодействия с документами при работе с HTML, XML и другими языками разметки. Такие деревья легли в основу современного веб-серфинга и работы с другими документами - например, формата Word. С помощью этого подхода мы можем модифицировать веб-страницу на лету, не тратя время и силы на постоянную отправку запросов на сервер.</p>