首页 > 解决方案 > 尝试添加获取每个侦听项目以记录唯一编号

问题描述

我已经使用 for 循环创建了一个列表,并希望为它们中的每一个添加一个事件侦听器,以便在单击每个项目时,它会在控制台中记录项目编号(例如,如果单击列表项目 1,则控制台日志会返回变量 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])});
 }

标签: javascriptdomevent-listener

解决方案


我会尝试在元素的属性中添加数字,然后在需要时从那里获取它。

tipsCatalogList[i].addEventListener('click', function() {console.log($(this).attr('yournumber'))});

推荐阅读