как при делегировании добавить класс другому элементу

238
25 июля 2021, 14:10

Пробую сделать делегирование таким способом. Ставлю один обработчик событий на весь код. Первые два условия работают без проблем, но в третьем не могу добавить класс. В консоли выходит: Uncaught TypeError: Cannot read property 'add' of undefined. Почему? Или я не правильно делаю делегирование?


document.body.addEventListener("click", function(event) {
  if (event.target.classList.contains('place-card__delete-icon')) {
    event.target.parentNode.remove();
  }
  if (event.target.classList.contains('place-card__like-icon')) {
    event.target.classList.toggle('place-card__like-icon_liked');
  }
  if (event.target.classList.contains('user-info__button-add')) {
    formAddPlace.classList.add('popup__new_is-opened');
  }
  if (event.target.classList.contains('user-info__button-edit')) {
    console.log("Clicked", event.target.textContent);
  }
});```
Answer 1

document.querySelectorAll возращает не элемент а NodeList (Дока)

Отюда и проблема. У элемента NodeList не бывает поля classList. Ты или индивидуально перебором (через циклы или forEach - это если у тебя несколько элементов .popup__new) или если он один то const formAddPlace = document.querySelector('.popup__new');

READ ALSO
CSS: position: sticky

CSS: position: sticky

В данный момент я пытаюсь сделать сайдбар, который не прокроливается, и при этом прилипает к верхней границе экрана, когда сама страница проскролливается...

366
Не получается установить элементы, как на скриншоте

Не получается установить элементы, как на скриншоте

Коллеги, подскажите, пожалуйстаНе получается сверстать L так, как на скрине

342
Помогите пожалуйста подправить мой код. Программа, которая считает количество вхождений в текст каждого символа

Помогите пожалуйста подправить мой код. Программа, которая считает количество вхождений в текст каждого символа

Нужна программа, которая считает количество вхождений в текст каждого символа

219