【发布时间】:2019-11-24 18:22:15
【问题描述】:
我正在尝试添加一个事件,当我单击它时会更改按钮的文本。不过不管我点击哪个按钮,它总是会改变最后一个按钮的文本。
起初我尝试将按钮传递给“pulsar”方法,但总是最后一个按钮是变化的。我认为这可能是变量的引用,所以我尝试传递位置,但同样的情况发生了。
class Buscaminas{
constructor () {
this.botones = [];
for (var i = 0; i < 8; i++) {
for (var j = 0; j < 7; j++) {
let boton = document.getElementById(i + "" + j);
boton.textContent = "Hi";
boton.onclick = e => {
this.pulsar(6*i+j);
}
this.botones.push(boton);
}
}
}
pulsar = (n) => {
console.log(n);
this.botones[n].textContent = "Bye";
}
}
console.log 总是打印 55
【问题讨论】:
-
将
var i和var j更改为let i和let j,因此每个函数中的值将是它们被声明的值,而不是最后的值。 -
谢谢!我认为因为它们是数字,所以没有必要
-
如何显示按钮?
标签: javascript html arrays button