下面的JSFiddle是我想要完成的一个简化示例。
我的代码生成了一个。传递给div
的锚元素。
我希望双击时返回其ID,但改为undefined
。
谁能告诉我我做错了什么?
function abc() {
var myString = "<a onclick='bcd(this);' id='1'>krokodil</a>";
document.getElementById("output").innerHTML = myString;
}
function bcd(e) {
alert(this.id);
}
答案 0 :(得分:3)
this
的值取决于您如何调用该函数。
由于您在没有显式对象(bcd
)的情况下调用foo.bcd()
且未处于严格模式,因此该值将等于window
(在浏览器中)。
您正在阅读窗口的ID,而不是元素。
查看e
变量而不是this
(因为您从click事件处理程序传递了该元素)。