【发布时间】:2012-08-18 05:56:06
【问题描述】:
我在这个循环中调用增量器 i 来识别我当前的元素时遇到了一些麻烦。 Firebug 给了我错误"li[i].addEventListener is not a function"。
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循环吗?我注意到alert(i); 在循环结束时调用了一些额外的东西,那么在 for in 循环中使用增量器有什么不同的方法吗?顺便说一下,我使用的列表是这样的:
<ul>
<li id=pomp>
stuff
</li>
<li id=and>
and
</li>
<li id=circumstance>
things
</li>
</ul>
【问题讨论】:
标签: javascript loops increment getelementsbytagname