Ingernirated
@Ingernirated
Романыч

Каким свойством события можно узнать позицию элемента в массиве?

Есть 3 элемента, как можно узнать, какой он из них?
Перечитал все свойства события, но так и не нашел способа
https://jsfiddle.net/f4ocguv4/29/
  • Вопрос задан
  • 303 просмотра
Решения вопроса 2
VoidVolker
@VoidVolker Куратор тега JavaScript
Dark side eye. А у нас печеньки! А у вас?
Вот так: https://jsfiddle.net/edfgg6jw/1/
<div>
    <div class="div2"></div>
    <div class="div2"></div>
    <div class="div2"></div>
</div>

function el(e) {
    var target = e.target
        , arr = target.parentNode.children
        , len = arr.length
        , i = 0
        , elementIndex = null
    ;
    for(; i<len; i++){
        if(arr[i] === target){
            elementIndex = i;
            break;
        }
    }
    console.log('elementIndex: ', elementIndex);
}
window.addEventListener("click", el);
Ответ написан
Можно вот так
function el(e) {
    var parent = e.target.parentNode; //Узнаем родителя текущего элемента
    var children = parent.childNodes; //Получаем ВСЕХ детей родителя
    var count = 0; //Счётчик
    //Пробегаем по детям
    for (i=0; i < children.length ; i++) {
        //Если текущий ребёнок является узлом элемента
        if (children[i].nodeType === document.ELEMENT_NODE ) {
            //Увеличиваем счётчик
            count++;
            //Выводим текущую позицию элемента, если на нём сработало событие
            if(children[i] === e.target) {
                console.log(count);
            }
        }
    }
}
window.addEventListener("click", el);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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