@webquestions

Как по наведению на элемент узнать его номер как дочернего элемента?

Как по наведению на элемент узнать его номер как дочернего элемента?
ul
>li
>li
>li:hover (выдает что это 3 элемент)
  • Вопрос задан
  • 162 просмотра
Решения вопроса 2
Stalker_RED
@Stalker_RED
function getIndex(el){
  var index = 0;
  while (el = el.previousElementSibling) {
    index++;
  }
  return index;
}


Демо: https://jsfiddle.net/m813ozb1/

P.S.: Да, и в этом случае отсчет идет с нуля, как и в массивах и при определении jQuery. Но если вам нужно с единицы, вы можете изменить стартовое значение счетчика.

UPD: 2023
Сейчас уже смело можно использовать синтаксис из ES6/ES2015
const getIndex = el => [...el.parentNode.children].indexOf(el);
Ответ написан
DIITHiTech
@DIITHiTech
Fullstack javascript developer
function getNodeIndex(node){
   return node && node.parentNode && [].indexOf.call(node.parentNode.children, node);
}

var log=document.getElementById("log");
document.body.addEventListener("mouseover",function(event){
  log.innerHTML="Node index="+getNodeIndex(event.target);
})

https://jsfiddle.net/DigitalBrain/u5oqo9rf/
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
aliencash
@aliencash
Партизан
Наверно не очень подходящее вам решение... Однако я бы не стал считать дочерние элементы на js (это сложно), а присвоил бы каждому li атрибут, что-то типа data-number="3" и обращался бы к нему из js. На крайний случай можно этот номер даже в alt запихнуть...
Ответ написан
Ваш ответ на вопрос

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

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