我正在尝试在onclick事件处理程序函数内获取一个对象。
但是它不像我期望的那样工作。
例如,如果我运行这段代码:
var entries = [{id: 1},{id: 2},{id: 3}];
for (var i = 0; i < entries.length; i++) {
var entry = entries[i];
document.getElementById(entry.id).onclick = function () {
console.log("this.id: " + this.id);
console.log("entry.id: " + entry.id);
};
}
What I expect is:
this.id: 1
entry.id: 1
this.id: 2
entry.id: 2
this.id: 3
entry.id: 3
但我得到的是:
this.id: 1
entry.id: 3
this.id: 2
entry.id: 3
this.id: 3
entry.id: 3
为什么entry对象总是具有id 3的条目?
如何在click事件处理程序内获取正确的entry对象?
event.target.id
和event.currentTarget.id
属性正确地获取了值。控制台接收到输入值3是因为它是for循环中的最后一次迭代。 - user1385191