如果:
var allBusiness = ["one", "two", "three", "four"]
for (var i = 0; i < allBusiness.length; i++) {
document.getElementById(allBusiness[i]).addEventListener("click", function () {
console.log(allBusiness);
});
}
这个记录["one", "two", "three", "four"]
但是,我尝试分别记录每个值的以下内容显示undefined
:
var allBusiness = ["one", "two", "three", "four"]
for (var i = 0; i < allBusiness.length; i++) {
document.getElementById(allBusiness[i]).addEventListener("click", function () {
console.log(allBusiness[i]);
});
}
为什么没有记录相应的名字?以及如何实现这一目标?
答案 0 :(得分:-1)
原因很简单:我不再在你要通过的回调函数的范围内定义。
关于如何,我想一个很好的问题,你想要实现什么?你可以使用它。
var allBusiness = ["one", "two", "three", "four"]
for (var i = 0; i < allBusiness.length; i++) {
document.getElementById(allBusiness[i]).addEventListener("click", function () {
console.log(this.id);
});
}
P.S。注意:我不认为这是解决问题的好方法,但它会得到你想要的东西