JavaScript — это мощный язык, который позволяет вам манипулировать объектной моделью документа (DOM) и реагировать на события на веб-странице. В этом блоге мы рассмотрим некоторые распространенные методы манипулирования DOM и обработки событий в JavaScript.

Манипуляции с DOM

DOM — это древовидная структура, которая представляет элементы HTML на веб-странице. Вы можете использовать JavaScript для доступа, изменения и добавления элементов в DOM.

Чтобы получить доступ к элементу в DOM, вы можете использовать метод document.getElementById(). Этот метод принимает идентификатор элемента в качестве аргумента и возвращает элемент с этим идентификатором. Например:

const element = document.getElementById('my-element');

Чтобы изменить элемент в DOM, вы можете использовать свойство element.innerHTML. Это свойство позволяет вам установить HTML-содержимое элемента. Например:

element.innerHTML = '<p>New HTML content</p>';

Вы также можете использовать метод document.createElement() для создания нового элемента в DOM. Этот метод принимает имя тега элемента в качестве аргумента и возвращает новый элемент с этим тегом. Например:

const newElement = document.createElement('div');

Чтобы добавить новый элемент в DOM, вы можете использовать метод element.appendChild(). Этот метод принимает новый элемент в качестве аргумента и добавляет его в конец дочерних элементов. Например:

element.appendChild(newElement);

События

В JavaScript вы можете использовать события, чтобы реагировать на действия пользователя на веб-странице. Например, вы можете использовать событие click для выполнения функции, когда пользователь щелкает элемент.

Чтобы прикрепить прослушиватель событий к элементу, вы можете использовать метод element.addEventListener(). Этот метод принимает имя события и функцию в качестве аргументов. Функция будет выполнена, когда произойдет событие. Например:

element.addEventListener('click', function() {
  console.log('Element was clicked');
});

Вы также можете использовать объект event в функции прослушивателя событий для доступа к информации о событии. Например, вы можете использовать свойство event.target, чтобы получить элемент, вызвавший событие.

element.addEventListener('click', function(event) {
  console.log(event.target); // Element that was clicked
});

В JavaScript доступно множество других событий, таких как mouseover, keydown и submit. Полный список событий вы можете найти в Документации MDN.

Пример: проверка формы

Давайте применим эти концепции на примере. Предположим, у нас есть форма с обязательным полем электронной почты, и мы хотим проверить форму, когда пользователь отправляет ее.

Во-первых, мы можем использовать манипуляции с DOM для доступа к форме и элементам ввода:

const form = document.getElementById('my-form');
const emailInput = document.getElementById('email');

Затем мы можем использовать прослушиватель событий для прослушивания события submit в форме. Когда форма будет отправлена, мы проверим, является ли ввод электронной почты пустым. Если это так, мы покажем сообщение об ошибке и предотвратим отправку формы.

form.addEventListener('submit', function(event) {
  if (emailInput.value === '') {
    // Display error message
    const errorMessage = document.createElement('div');
    errorMessage.innerHTML = 'Please enter an email';
    errorMessage.classList.add('error-message');
    form.insertBefore(errorMessage, emailInput);

    // Prevent form from being submitted
    event.preventDefault();
  }
});

Наконец, мы можем использовать другой прослушиватель событий для прослушивания события focus во входных данных электронной почты. Когда ввод сфокусирован, мы удалим сообщение об ошибке, если оно существует:

emailInput.addEventListener('focus', function() {
  const errorMessage = document.querySelector('.error-message');
  if (errorMessage) {
    errorMessage.remove();
  }
});

Вот и все! Теперь наша форма будет отправлена ​​только в том случае, если ввод электронной почты не пуст.

«Единственным ограничением нашей реализации завтрашнего дня будут наши сегодняшние сомнения». — Франклин Д. Рузвельт

Спасибо, что прочитали эту статью о манипулировании DOM и событиях в JavaScript. Я надеюсь, что вы нашли его полезным и вдохновили на дальнейшее обучение и рост в качестве веб-разработчика.