Javascript 循环数组并添加事件侦听器“;点击";每人
我试图遍历一个元素数组,并为每个元素添加一个事件侦听器 填充数组:Javascript 循环数组并添加事件侦听器“;点击";每人,javascript,arrays,onclicklistener,addeventlistener,Javascript,Arrays,Onclicklistener,Addeventlistener,我试图遍历一个元素数组,并为每个元素添加一个事件侦听器 填充数组: var sliders = [].slice.call(document.getElementsByClassName("sliderControlLi")); sliders.forEach(function (i){ addEventListener("click", function(){ console.log("you clicked slider controler " + this.index + "
var sliders = [].slice.call(document.getElementsByClassName("sliderControlLi"));
sliders.forEach(function (i){
addEventListener("click", function(){
console.log("you clicked slider controler " + this.index + "!");
});
});
在数组中迭代:
var sliders = [].slice.call(document.getElementsByClassName("sliderControlLi"));
sliders.forEach(function (i){
addEventListener("click", function(){
console.log("you clicked slider controler " + this.index + "!");
});
});
但是有了这段代码,每当我点击任何一个滑块时,我都会得到多个console.log打印输出——数组中每个滑块一次
我已经寻找过类似的问题,但我仍然无法解决这个问题
谢谢你的帮助 您应该使用
EventTarget.addEventListener(...)
^^^^^^^^^^^^
那么你的情况呢
sliders.forEach(function (elem){
elem.addEventListener(...);
});
您应该将用作:
target.addEventListener(type, listener[, options]);
您还可以从获取索引:
arr.forEach(function ( element_value,element_index ){ })
希望这有帮助
var sliders=[].slice.call(document.getElementsByClassName(“sliderControlLi”);
滑块.forEach(函数(元素、索引){
元素。addEventListener(“单击”,函数(){
log(“您单击了滑块控制器”+索引+“!”);
});
});代码>
滑块1
滑块2
滑块3
滑块4
和什么是addEventListener
?你在哪里引用元素来添加onclick?使用i.addEventListener(..)
…相关元素的可能重复项你的意思是它应该是sliders[i]。addEventListener(“单击”
…?如果我这样做,那么我会得到一个错误,“sliders.addEventListener不是函数”