要解决“AddEventListener仅适用于最后一张图片”的问题,你可以使用一个循环来为每张图片都添加一个事件监听器。以下是一个示例代码:
// 获取所有图片元素
var images = document.querySelectorAll('img');
// 循环为每张图片添加事件监听器
for (var i = 0; i < images.length; i++) {
// 创建一个闭包来保存当前索引值
(function(index) {
// 添加事件监听器
images[index].addEventListener('click', function() {
// 在控制台输出当前点击的图片索引值
console.log('Clicked image:', index);
});
})(i);
}
这段代码使用了一个自执行的匿名函数来创建一个闭包,以便在每次循环迭代时保留当前索引值。这样,每张图片的事件监听器都会绑定到正确的索引值上,不会受到循环迭代的影响。这样,无论点击哪张图片,事件监听器都会正确地输出相应的索引值。