Как правильно работать с DOM в JavaScript в 2025 году?
Работа с DOM (Document Object Model) — это основа веб-разработки. С каждым годом появляются новые, более эффективные способы манипуляции элементами страницы. Давайте разберём, как сегодня правильно работать с DOM в JavaScript, чтобы код был быстрым, удобным и безопасным.
1. Получение элементов
Вместо старых getElementById
и getElementsByClassName
сегодня лучше использовать querySelector
и querySelectorAll
. Они более универсальные и понятные.
const title = document.querySelector("#title"); // Получает 1 элемент (по id)
querySelector
и querySelectorAll
позволяют находить элементы так же, как в CSS (.класс
, #id
, input[type="text"]
и т. д.). А также querySelectorAll
возвращает не «живую» коллекцию, а обычный статичный список (NodeList
), что логичнее при итерации.
2. Изменение текста и HTML
Всё зависит от того, что именно нужно поменять.
textContent
— если надо изменить только текст (без HTML).
title.textContent = "Привет, мир!";
Не используйте innerHTML
, если вставляете данные от пользователя — это дыра в безопасности (XSS-атаки). Если всё же используется innerHTML
, убедитесь, что данные проверены.
title.innerHTML = "
insertAdjacentHTML
— отличная альтернатива innerHTML
, если нужно добавить HTML в определённое место, не перезаписывая весь элемент.
title.insertAdjacentHTML("beforeend", "
3. Изменение классов
Правильный способ через classList
, потому что `className`заменяет все классы сразу, из-за чего можно случайно удалить важные стили.
title.classList.add("highlight"); // Добавит класс
4. Изменение стилей
Не стоит вручную писать style.cssText
, потому что он затирает всё, что было до этого. Используйте style
для отдельных свойств.
title.style.color = "red";
Если нужно много стилей — лучше добавьте или измените класс. Так проще, централизованно и удобнее управлять дизайном.
title.classList.add("error"); // В CSS заранее определите .error { color: red; }
5. Создание и добавление новых элементов
Лучший способ — использовать createElement
, а не innerHTML
.
const newDiv = document.createElement("div"); // Создаём элемент
Если нужно добавлять элементы в разные места:
appendChild()
— добавляет в конец родителя.
prepend()
— добавляет в начало.
before()
и after()
— добавляют перед или после элемента.
title.after(newDiv); // Вставит newDiv сразу после title
6. Удаление элементов
Самый актуальный способ — remove()
.
newDiv.remove(); // Удалит элемент из DOM
Раньше приходилось делать так (и это было неудобно):
newDiv.parentNode.removeChild(newDiv); // Старый подход
7. Обработчики событий (современный подход)
Раньше часто использовали`onclick`, но перезаписывает предыдущие обработчики и плохо управляется. Лучше используйте addEventListener
.
const button = document.querySelector("#myButton");
Мы рассказали только часть советов. Если знаете что-то ещё важное, о чем мы не рассказали тут, поделитесь в комментариях.
#простымисловами #фронтенд