gpt4 book ai didi

javascript - 循环和函数

转载 作者:行者123 更新时间:2023-11-28 00:35:56 25 4
gpt4 key购买 nike

我在收集有关单击的事件监听器的信息时遇到问题。

我有一个构建数组的循环:

myButtonList = document.getElementsByTagName('a');
myAnchorList = [];

for (i=0; i < myButtonList.length;i++) {
if (myButtonList[i].getAttribute('class') == 'flagged') {
myAnchorList.push(myButtonList[i]);
}
}

对于每个 <a>放入myAnchorList数组,我还创建了另一个数组,存储来自同一标签的其他信息(类和其他属性)。

这就是我正在努力的地方。我正在尝试设置一个事件监听器,当这些 <a> 时向我发送回这些信息。正在被点击。但不知何故,我在循环中创建一个函数(用于事件监听器)这一事实破坏了一切。

for (i=0; i < myAnchorList.length; i++) {
myAnchorList[i].addEventListener("click", function(i){
console.log(alpha+' - '+beta[i]+" - "+charlie[i]);
});
}

我的值要么是 undefined或一些其他值,这些值对于我单击的每个按钮都是相同的。 alpha运行良好,因为它不依赖于循环的任何迭代,但也不依赖于其他循环。

有人能看出我在这里做错了什么吗?

最佳答案

for (var i = 0; i < myAnchorList.length; i++) {
(function (i) { //Passes i to your function
myAnchorList[i].addEventListener("click", function () {
console.log(alpha+' - '+beta[i]+" - "+charlie[i]);
});
})(i);
}

关于javascript - 循环和函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28495518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com