Как передать индекс элемента в функцию?

134
21 февраля 2021, 10:00

button.forEach(function(item){ 
    item.addEventListener('click', openPopup); 
});

в функцию openPopup нужно передать индекс нажатого item. Как это реализовать?

Answer 1

Индекс в перебираемой коллекции идет вторым аргументом у функции, которую Вы передаете в forEach

collection.forEach(function(item, i) { 
   // one iteration
})

function openPopup(event, index) { 
    console.log(index, event); 
} 
document.querySelectorAll('button').forEach(function(button, index) { 
    button.addEventListener('click',  e => openPopup(e, index)); 
});
<button>нажми</button> 
<button>на</button> 
<button>кнопку</button> 
<button>получишь</button> 
<button>результат</button>

READ ALSO
Смена цвета фона на градиент по нажатию JavaScript

Смена цвета фона на градиент по нажатию JavaScript

Есть блок с тестом, который меняет цвет фона по нажатию на кнопкиКак выставить в JS цвет так, чтобы он менялся на градиент

116
Остановить CSS анимацию

Остановить CSS анимацию

Помогите решить вопрос, или подскажите как остановить css анимациюЕсть такой вот прелоадер, нужно оставить анимацию когда виден весь круг...

104
Как экспортировать макет в Zeplin?

Как экспортировать макет в Zeplin?

Установил zeplin, дальше создаю проект и иду в фотошоп, создаю Артбоард и импортирую его через плагин, но мне пишет такое: "Can't import artboards to "Untitled"...

115