Как получить индекс li при клике на ссылку?

Всем привет!

Нужно получить индекс li при клике на ссылку внутри него.
Без использования jquery.

Такая структура:

<ul>
  <li>
    <a href="#">Link 1</a>
  </li>
  <li>
    <a href="#">Link 2</a>
  </li>
  <li>
    <a href="#">Link 3</a>
  </li>
  <li>
    <a href="#">Link 4</a>
  </li>
  <li>
    <a href="#">Link 5</a>
  </li>
</ul>
  • Вопрос задан
  • 456 просмотров
Решения вопроса 1
Seasle
@Seasle Куратор тега JavaScript
document.querySelectorAll('ul li a').forEach((link, index) => {
   link.addEventListener('click', () => {
       console.log('Index is', index);
   });
});

или
document.querySelectorAll('a').forEach(link => {
   link.addEventListener('click', event => {
       const parent = event.target.closest('li');
       if (parent !== null) {
           const items = [...parent.parentElement.children];
           const index = items.indexOf(parent);
           console.log('Index is', index);
       }
   });
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@TRNER
Для этого можно использовать parentElement

https://codepen.io/Turbin/pen/oNWbgRe
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы