
Объектная модель документа является важной частью веб-разработки. Он позволяет программистам взаимодействовать со структурой веб-сайта и манипулировать ею.
С помощью DOM разработчики могут получать доступ к различным частям веб-страницы и изменять их. Это позволяет создавать динамические и интерактивные веб-сайты, где взаимодействие пользователя может вызвать изменения в макете и содержимом страницы.
Понимание DOM имеет решающее значение для создания адаптивных и удобных веб-сайтов. Поэтому в этой статье мы глубже рассмотрим, что может делать DOM и как вы можете использовать его в JavaScript.
Что такое DOM?
DOM, или объектная модель документа, похожа на карту сайта. Подобно тому, как карта показывает, где находятся все улицы и здания в городе, DOM показывает, где находится на веб-сайте.
DOM помогает вашему компьютеру понять разные части веб-сайта и то, как они объединены.
Подобно тому, как вы можете использовать карту для ориентации в городе, программисты могут использовать DOM, чтобы находить различные части веб-сайта и изменять их свойства. К примеру, они могут заставить кнопку изменить цвет, когда пользователь наводит на нее курсор, или заставить изображение двигаться по экрану.
DOM похож на большую головоломку. Но используя JavaScript, мы можем перемещать кусочки головоломки, чтобы сайт выглядел и работал так, как мы хотим, чтобы он работал.
DOM+JavaScript
JavaScript – это язык программирования, который помогает нам взаимодействовать с DOM. DOM и JavaScript похожи на двух друзей, вместе делающих веб-сайты крутыми и интерактивными. Опять же, DOM похож на большую карту, которая показывает, где расположены все разные части веб-сайта.
С другой стороны, JavaScript похож на волшебную палочку, которая может изменить веб-сайт, используя карту (DOM) для поиска различных частей веб-сайта. Он может заставить кнопку изменить цвет при нажатии на нее или переместить изображение в другое место на странице.
Вместе DOM и JavaScript делают веб-сайт живым и реагируют на то, что вы делаете, например, перемещение мыши или нажатие кнопки.
Таким образом, DOM похож на карту, которая показывает, где все находится, а JavaScript похож на волшебную палочку, которая может изменить вещи на этой карте.
Структура DOM – понимание дерева DOM
Представьте, что веб-сайт похож на большую книгу, и каждая страница в этой книге представляет отдельную часть веб-сайта. Дерево DOM похоже на содержание этой книги. Он показывает все разные части веб-сайта и то, как они организованы.
Каждая часть сайта называется «элементом», и эти элементы расположены в виде дерева.
Верхушка дерева называется «корень», и она представляет весь сайт. Оттуда дерево разветвляется на различные разделы, такие как заголовки, абзацы, изображения и другие, которые составляют весь веб-сайт.

Подобно тому, как содержание в книге помогает вам находить определенные страницы, дерево DOM помогает компьютерам находить определенные элементы на веб-сайте. Кроме того, это позволяет разработчикам получать доступ к этим элементам и изменять их, чтобы они могли сделать веб-сайт интерактивным.
Короче говоря, дерево DOM представляет структуру веб-сайта понятным для компьютеров способом. Разработчики могут использовать его для доступа и управления различными элементами этой структуры для создания динамических веб-страниц.
Как получить доступ к DOM
Доступ к элементам в DOM означает поиск определенных частей веб-сайта и изменение или манипулирование ими.
Чтобы получить доступ к элементу на веб-сайте, необходимо знать конкретный элемент, к которому вы хотите получить доступ.
JavaScript предоставляет различные методы доступа к элементам в DOM, например getElementById
, getElementsByTagName
, querySelector
и querySelectorAll
.
Эти методы позволяют найти элемент на его основе id
, tagname
или classname
и выберите его для манипуляции.
Например, вы можете получить доступ к кнопке на веб-странице и изменить ее текст или цвет, когда пользователь нажимает ее. Или можно получить доступ к изображению на веб-странице и изменить его на другое, когда пользователь наводит на него курсор.
Вот пример того, как вы можете использовать DOM для доступа к элементу на веб-странице:
Предположим, у вас есть веб-страница, на которой отображается список студентов, и вы хотите изменить цвет фона определенного студента, когда его щелкают.
Вы можете использовать метод DOM getElementById
чтобы получить доступ к конкретному элементу, который представляет студента, а затем использовать style
JavaScript, чтобы изменить цвет фона этого элемента.
Вот как это может выглядеть:
<div id="student-list">
<div id="student-1" class="student">John</div>
<div id="student-2" class="student">Alice</div>
<div id="student-3" class="student">Bob</div>
</div>
.student {
padding: 40px;
margin-bottom: 10px;
cursor: pointer;
}
.student:hover {
background-color: #f1f1f1;
}
let student1 = document.getElementById("student-1");
student1.addEventListener("click", () => {
student1.style.backgroundColor = "lightblue";
});
В этом примере JavaScript использует getElementById
для выбора элемента с идентификатором «student-1» и его изменения backgroundColor
свойство становится «светло-голубым», когда вы нажимаете на него.

Аналогично можно использовать getElementsByClassName
чтобы выбрать все элементы с определенным классом и querySelector
для выбора элемента на основе селектора CSS.
Это лишь базовый пример, но он иллюстрирует, как можно использовать DOM для доступа к определенным элементам на веб-странице и изменять их свойства в ответ на взаимодействие пользователя.
Как добавлять, удалять и изменять элементы DOM
Добавление, удаление и изменение элементов в DOM означает добавление новых элементов на веб-страницу, удаление существующих элементов и изменение свойств существующих элементов.
Например, если вы хотите добавить новую кнопку на веб-страницу, вы должны использовать JavaScript для создания нового элемента, а затем использовать DOM, чтобы добавить этот элемент на веб-страницу. Также, если вы хотите удалить элемент, вы должны использовать DOM, чтобы найти элемент, а затем удалить его.
Модификация элементов также предполагает внесение изменений в свойства существующего элемента. Например, можно использовать DOM для изменения текста внутри кнопки.
Вот как вы можете выразить это в коде:
<div id="wrapper" class="btn-wrapper">
<button id="create-btn" class="btn">Create new button</button>
</div>
.btn-wrapper {
display: flex;
height: 100vh;
justify-content: center;
align-items: center;
gap: 10px;
flex-wrap: wrap;
}
let createButton = document.getElementById("create-btn");
let wrapper = document.getElementById("wrapper");
createButton.addEventListener("click", () => {
let newButton = document.createElement("button");
newButton.innerHTML = "Click me";
wrapper.appendChild(newButton);
});
В приведенном выше примере мы создаем новый элемент кнопки и устанавливаем текст внутри кнопки на «Нажми меня». Тогда мы используем appendChild
метод, чтобы добавить этот новый элемент кнопки на веб-страницу.

Подведение итогов
Объектная модель документа (DOM) является важным инструментом создания интерактивных динамических веб-страниц с помощью JavaScript. Это позволяет разработчикам получать доступ и манипулировать содержимым веб-страниц в режиме реального времени.
Понимание дерева DOM и того, как получить доступ, добавлять, удалять и изменять элементы имеет решающее значение для разработчиков JavaScript.
Мы увидели, как DOM представляет веб-страницу как дерево объектов и как мы можем использовать разные методы, например getElementById
, getElementsByTagName
, querySelector
и querySelectorAll
доступ к определенным элементам веб-страницы. С помощью этих методов мы можем изменить содержимое, стиль или макет веб-страницы после загрузки в обозревателе.
Кроме того, мы увидели, как добавлять новые элементы на веб-страницу, удалять существующие элементы и изменять свойства существующих элементов.
Вывод
Надеюсь, эта статья дала вам лучшее понимание объектной модели документа и способов ее использования для создания динамических веб-страниц.
Помните, что DOM – это мощный инструмент, который можно использовать для создания удивительных веб-сайтов, поэтому не бойтесь экспериментировать и пробовать что-нибудь новое.
Спасибо за чтение! Пожалуйста, поделитесь этой статьей и подпишитесь на меня в Twitter @alege_dev для получения обновлений для будущих публикаций.