gpt4 book ai didi

javascript - 从 for in 循环调用增量器

转载 作者:行者123 更新时间:2023-12-02 19:26:18 25 4
gpt4 key购买 nike

我在这个循环中调用增量器 i 来识别当前元素时遇到了一些麻烦。 Firebug 给我错误“li[i].addEventListener 不是函数”

document.addEventListener("DOMContentLoaded", function(){

var li = document.getElementsByTagName('li');

for(var i in li){
li[i].addEventListener('click', function(){
alert('yey');
});
}
});

奇怪的是如果我打电话

alert(li[i].getAttribute('id')

我收到了 ID 提醒,但如果我随后使用

var id=li[i].getAttribute('id');
document.getElementById(id).addEventListener(blah);

我得到同样的“不是函数”错误。这是 for in 循环的事情吗?我注意到 alert(i); 在循环末尾调用了一些额外的东西,那么是否有不同的方法在 for in 循环中使用增量器?顺便说一下,我使用的列表是这样的:

<ul>
<li id=pomp>
stuff
</li>
<li id=and>
and
</li>
<li id=circumstance>
things
</li>
</ul>

最佳答案

这就是为什么你必须避免使用 for in 循环

for(var i=0;i<li.length;i++){
li[i].addEventListener('click', function(){
alert('yey');
});
}

当您使用 for in 时,i 并不是您期望的整数,而是节点列表的属性。

关于javascript - 从 for in 循环调用增量器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12016227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com