Задать вопрос
ArtemEfremov
@ArtemEfremov

Как узнать, в каком div была нажата кнопка?

Есть код:

<div id="1">
 <button>Тестовая кнопка</button>
</div>

Как получить ID div'а, если кнопка была нажата? Именно, чтобы данные при нажатии содержали id блока в котором была нажата кнопка.
  • Вопрос задан
  • 2816 просмотров
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript + ИИ
    11 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию + ИИ
    6 месяцев
    Далее
Решения вопроса 3
0xD34F
@0xD34F Куратор тега JavaScript
О каких кнопках идёт речь и где они находятся:

const containerSelector = 'div';
const buttonSelector = `${containerSelector} button`;

Обработчик клика может быть делегированным:

document.addEventListener('click', e => {
  const container = e.target.closest(buttonSelector)?.closest(containerSelector);
  if (container) {
    console.log(container.id);
  }
});

Или можно слушать клики непосредственно на кнопках:

document.querySelectorAll(buttonSelector).forEach(function(n) {
  n.addEventListener('click', this);
}, function() {
  let container = this;
  while (!(container = container.parentNode).matches(containerSelector)) ;
  console.log(container.getAttribute('id'));
});
Ответ написан
politon
@politon
HTML5,CSS3,JS,PHP,SQL,API,canvas,animation...
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы