如何在JavaScript中动态添加Click事件处理程序?

时间:2012-10-20 21:49:10

标签: javascript html

JSFiddle

有一个简单的for循环,任何人都可以向我解释为什么它不起作用?

这是代码(它也在小提琴中)

JS -

var anchors = document.getElementsByTagName('a');

for (var i, anchor; anchor = anchors[i]; i++) {
    console.log('looping');
anchor.addEventListener("click", setNavigation, false);
}​

HTML -

​<a href="#"></a>
<a​​​​​​​​​​​​​​​​​​​​ href="lol"></a>​​​​​​​​​​​​​​​​​​​​​​​​​​

1 个答案:

答案 0 :(得分:3)

您忘记将i初始化为值0。使用for (var i=0, …

顺便说一句,通常你检查i是否小于迭代集合的length,而不是在循环条件中查找truthy值。那么您也不需要额外的变量anchor

var anchors = document.getElementsByTagName('a');
for (var i=0; i<anchors.length; i++) {
    console.log('looping');
    anchors[i].addEventListener("click", setNavigation, false);
}​