Вопрос проверяет понимание структуры DOM (Document Object Model) и его роли в манипуляции содержимым веб-страницы, что является фундаментальным для работы с JavaScript в браузере.
DOM (Document Object Model) — это не язык программирования, а стандартный, кроссплатформенный интерфейс, который позволяет программам и скриптам динамически получать доступ и обновлять содержание, структуру и стиль документа. Когда браузер загружает HTML-страницу, он парсит её и строит из элементов, атрибутов и текста древовидную структуру в памяти — DOM-дерево.
Дерево состоит из узлов (nodes). Основные типы узлов:
Узлы связаны отношениями родитель-потомок-сиблинг, образуя иерархию.
Рассмотрим простой HTML:
<!DOCTYPE html>
<html>
<head>
<title>Пример</title>
</head>
<body>
<h1>Заголовок</h1>
<p>Параграф с <strong>жирным</strong> текстом.</p>
</body>
</html>DOM-дерево для этого документа будет выглядеть примерно так (в упрощённом виде):
JavaScript получает доступ к DOM через глобальный объект document. С помощью методов DOM API (например, getElementById, querySelector, createElement) можно находить узлы, создавать новые, изменять их свойства, добавлять или удалять их из дерева. Любое изменение DOM-дерева немедленно отражается на отображаемой странице (этот процесс называется reflow и repaint).
// Находим элемент по id
const header = document.getElementById('main-header');
// Изменяем его текстовое содержимое
header.textContent = 'Новый заголовок';
// Создаём новый элемент
const newParagraph = document.createElement('p');
newParagraph.textContent = 'Этот абзац добавлен через JavaScript.';
// Добавляем его в конец тела документа
document.body.appendChild(newParagraph);
// Меняем стиль элемента
header.style.color = 'blue';Вывод: Понимание DOM-дерева критически важно для любой клиентской разработки на JavaScript, так как это основной способ сделать веб-страницу интерактивной и динамической. DOM служит мостом между статическим HTML и живым, управляемым скриптами интерфейсом.
Уровень
Рейтинг:
5
Сложность:
2
Навыки
JavaScript
HTML
Ключевые слова
Подпишись на React Developer в телеграм