> Как реализовать обработку клика на любой div внутри root и выводить в консоль только id этого div в JavaScript (JavaScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: Яндекс
Стек: JavaScript
> Пример ответа
Для реализации обработки клика на любой div внутри root с выводом в консоль только его id можно использовать делегирование событий. Это эффективнее, чем вешать обработчик на каждый элемент отдельно.
JAVASCRIPTdocument.getElementById('root').addEventListener('click', function(event) {// Проверяем, что кликнули именно по divif (event.target.tagName === 'DIV') {const id = event.target.id;if (id) {console.log(id);}}});
Объяснение:
- Обработчик вешается на родительский элемент
root(один раз). - Событие всплывает от дочерних
divк родителю. event.targetуказывает на конкретный элемент, по которому кликнули.- Проверка
tagName === 'DIV'гарантирует, что обрабатываются толькоdiv(а не вложенные элементы вродеspanилиp). - Выводится только
id, если он существует (иначе пустая строка).
Альтернативный вариант (если нужно игнорировать вложенные элементы внутри div):
JAVASCRIPTdocument.getElementById('root').addEventListener('click', function(event) {let target = event.target;// Поднимаемся по дереву до тех пор, пока не найдем div внутри rootwhile (target && target !== this) {if (target.tagName === 'DIV' && target.parentNode === this) {console.log(target.id);break;}target = target.parentNode;}});
Этот вариант обрабатывает клик на любом вложенном элементе внутри div, но выводит id только прямого дочернего div от root.
> Похожие задачи по frontend
Что делать в функции каррирования в JavaScript при получении достаточного количества аргументов
Как рекурсивно проверять условие повторных запросов с учётом счётчика попыток в JavaScript
Почему var всплывает и что происходит при всплытии в JavaScript
Почему let и const выдают ошибку при обращении до объявления в JavaScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью