javascript - 尝试添加获取每个侦听项目以记录唯一编号
问题描述
我已经使用 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])});
}
解决方案
我会尝试在元素的属性中添加数字,然后在需要时从那里获取它。
tipsCatalogList[i].addEventListener('click', function() {console.log($(this).attr('yournumber'))});
推荐阅读
- sql-server - 检查 SQL Server 中列的每个值的数据类型格式
- flutter - 下载一个颤振生成的文件
- java - mybatis cursor mysql 语句关闭后不允许操作
- java - Swing 图形重新定位 drawString
- c - 栈实现——链表
- javascript - 我想使用 ajax 获取数据表单数据库,但它不起作用。我应该改变什么?
- ocaml - 插入 let 绑定局部变量
- javascript - 如何使用正则表达式查找和替换文本?
- javascript - 检查对象数组中是否出现相同的值,然后在第一个找到的对象中添加另一个数组
- python - Django:将两个序列化程序组合成一个 JSON 响应