JavaScript DOM: Полное руководство по манипуляции элементами

freeCodeCamp.org 36,8 тыс. 1 ч 58 мин 4 мин 16.10.2025
Главное

Введение в DOM: фундамент интерактивного веба 0:00

DOM (Document Object Model) — это ключевой программный интерфейс, связывающий JavaScript с HTML-страницей, что позволяет создавать динамичные и интерактивные пользовательские интерфейсы. Видеокурс от канала freeCodeCamp.org представляет собой исчерпывающее руководство для начинающих веб-разработчиков, охватывающее все аспекты: от глубокого понимания структуры документа до практической реализации полноценного приложения для отслеживания расходов (expense tracker). Автор курса подчёркивает, что глубокое знание DOM в сочетании с пониманием JavaScript, HTML и CSS является необходимым фундаментом современного веб-разработчика.

🧠 Что такое DOM и как он устроен 1:59

DOM представляет собой модель документа, где JavaScript взаимодействует со структурой веб-страницы. Автор объясняет аббревиатуру через три составляющие:

Автор отмечает, что в REST API существуют четыре базовые операции (CRUD: create, read, update, delete), и DOM полностью поддерживает их для работы с элементами HTML. Вместо того чтобы вручную создавать каждый элемент через JavaScript, разработчики используют HTML как «язык разметки-ярлыка», а браузер автоматически преобразует его в DOM-дерево.

🛠 Практическая работа с DOM-объектами 8:26

Для практической работы автор использует Visual Studio Code, браузер Google Chrome и плагин Live Server (созданный Ritik), позволяющий мгновенно видеть изменения в коде.

Доступ к свойствам документа

🎯 Выбор элементов: ID, классы и теги 20:58

Стандартные методы селекции элементов:

  1. document.getElementById(): возвращает ссылку на уникальный элемент по его ID.
  2. document.getElementsByClassName(): возвращает HTMLCollection (похожий на массив список) всех элементов с указанным классом.
  3. document.getElementsByTagName(): возвращает коллекцию элементов по имени тега.

Современные методы: Query Selector

Автор называет querySelector и querySelectorAll наиболее мощными инструментами, так как они поддерживают CSS-селекторы:

🌳 Навигация и отношения в DOM-дереве 42:11

Поскольку DOM — это дерево, элементы имеют иерархические связи (родитель/потомок/сиблинг):

🏗 Манипуляции: создание и изменение элементов 54:47

Для динамического изменения страницы используются:

Автор подчеркивает различия между appendChild и append: последний может принимать несколько аргументов (как элементы, так и текст) и не возвращает значения, в то время как appendChild работает только с одним DOM-элементом и возвращает его.

⚡ События и формы 1:05:56

Event listener — это функция, ожидающая взаимодействия пользователя (клик, набор текста и т.д.). Самый распространенный метод — element.addEventListener('event', callback).

🚀 Проект: Expense Tracker 1:21:44

В финальной части видео автор пошагово создает приложение для учета расходов (CRUD-приложение). Ключевые аспекты реализации:

  1. Разделение обязанностей: Создана отдельная функция updateList для рендеринга UI и вынесены обработчики событий, что делает код чистым и поддерживаемым.
  2. Безопасные вычисления: Автор рекомендует хранить данные в массиве all_transactions объектов, а не полагаться на содержимое DOM, которое пользователь может изменить вручную.
  3. Динамическое удаление: Использование метода closest('.transaction-item') для идентификации строки и последующее использование splice для удаления записи из массива и remove() из DOM.
💬 Цитаты

«JavaScript doesn't recognize anything outside of objects.»

Автор курса 03:46

«The job of the submit callback is to handle the form data, not to worry about rendering the UI.»

👥 Спикер
🔗 Упомянутые сайты и проекты
📖 Термины
DOM
Интерфейс, позволяющий программам изменять структуру, содержимое и стили документа.
Event Listener
Функция, которая ждет определенного действия пользователя для выполнения кода.
CRUD
Четыре базовые операции с данными: Create, Read, Update, Delete.
NodeList
Коллекция узлов документа, возвращаемая методом querySelectorAll.
Prevent Default
Метод, отменяющий стандартное поведение браузера для события (например, перезагрузку при отправке формы).
📊 Цифры
🗓 Хронология
  1. Начало Теоретическое объяснение структуры DOM.
  2. Середина Практика селекции, навигации и манипуляций с DOM-элементами.
  3. Финал Создание полноценного приложения Expense Tracker.
⚖️ Другая сторона
Технологии и IT JavaScript DOM DOM manipulation Web development Event listeners