首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何让我的For循环将按钮的索引保存在另一个变量中?

要让For循环将按钮的索引保存在另一个变量中,可以使用闭包或者使用let关键字来解决。

闭包解决方案:

代码语言:txt
复制
var buttons = document.getElementsByTagName("button");
var indexArray = [];

for (var i = 0; i < buttons.length; i++) {
  (function(index) {
    buttons[index].addEventListener("click", function() {
      indexArray.push(index);
      console.log(indexArray);
    });
  })(i);
}

在每次循环迭代时,通过立即执行函数创建一个新的作用域,将当前的索引值传递给该函数,并在该函数内部创建一个闭包,使得每个按钮的点击事件都能够访问到对应的索引值。

使用let关键字解决方案:

代码语言:txt
复制
var buttons = document.getElementsByTagName("button");
var indexArray = [];

for (let i = 0; i < buttons.length; i++) {
  buttons[i].addEventListener("click", function() {
    indexArray.push(i);
    console.log(indexArray);
  });
}

使用let关键字声明循环变量i,它会在每次迭代时创建一个新的块级作用域,使得每个按钮的点击事件都能够访问到对应的索引值。

这两种解决方案都能够实现将按钮的索引保存在另一个变量中,并且避免了循环中的变量共享问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券