parentElement.parentElement.parentElement.parentElement… альтернатива?

#javascript #html #coding-style

#javascript #HTML #стиль кодирования

Вопрос:

Мне нужно получить доступ к идентификатору самого внешнего div в моем HTML-элементе из функции, выполняемой кнопкой, которая находится внутри всех HTML-элементов.

Я использую e.target.parentElement.parentElement.parentElement.parentElement.parentElement.id его, но он выглядит довольно уродливо для меня.

Есть ли другой способ путешествовать по такому количеству parentElements?

Ответ №1:

В современных браузерах вы можете использовать Element.closest(селекторы)

 document.querySelector('button').addEventListener('click', function(){
   console.log('Container id:', this.closest('.container').id);
}) 
 <div class="container" id="one">
  <div>
    <div>
       <button>Click me</button>
    </div>
  </div>

</div>