我正在尝试使某些事件侦听器正常工作,但是由于某些原因,它们无法正常工作。
下面的两个事件块可以单独正常工作,但只有一起才能removes
工作。如果我注释掉该块,则该users
块开始工作。是什么导致这种情况发生?
var removes = document.getElementsByClassName("x");
for(var c in removes){
removes[c].addEventListener("click", function(){
console.log("Remove");
}, false);
}
var users = document.getElementsByClassName("user");
for(var i in users){
users[i].addEventListener("click", function(){
console.log("Go");
}, false);
}
这是HTML的示例:
<div class="user" data-id="123456">
<div>
<img id="avatar" src="http://example.com/photos/image.png" style="height: 50px;" alt="Avatar"/>
</div>
<div>
<h3>My Username</h3>
<p>[email protected]</p>
</div>
<div class="x" data-id="123456">×</div>
</div>
getElementsByClassName返回一个HTMLNodeList,它基本上是一个节点数组,而不是表单上的对象
{ "a": "b" }
因此,您不会在循环中使用...,而是将其用于
例如
for( var i = 0; i < removes.length; i++ ){
removes[i].addEventListener( "click", function(){} );
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句