我已经使用for循环创建了一个列表,并希望向其中的每个添加一个事件侦听器,以便在单击每个项目时将其编号记录在控制台中(例如,如果单击了列表项目1, log返回变量currentNumber为0)。
但是,使用当前的代码,我在控制台日志中得到的只是“ 4”。有人可以帮我吗?谢谢。
for (i = 0; i < tipsCatalog.length; i++) {
var newCategory = document.createElement('li');
newCategory.id = "sMonTipHeadline-" + [i];
newCategory.className = "sMonTipHeadline";
newCategory.innerHTML = tipsCatalog[i].tipHeadline;
catalogContainer.appendChild(newCategory);
}
var currentNumber = [];
for (i = 0; i < tipsCatalog.length; i++) {
currentNumber[i] = i;
tipsCatalogList[i].addEventListener('click', function() {console.log(currentNumber[i])});
}
答案 0 :(得分:0)
我会尝试将数字添加到元素的属性中,然后在需要时从那里获取。
tipsCatalogList[i].addEventListener('click', function() {console.log($(this).attr('yournumber'))});