下面的简化代码不起作用,但我希望它有助于阐明我正在测试的想法。
e.target.id
返回启动函数调用的id的名称。在这种情况下,它是id target
。由于target
也是一个对象,我想也许我可以在target
对象中引用一个键。在这种情况下.name
。结构化这根本不起作用。在将其用作参考之前,是否需要处理e.target.id
?这有可能吗?
1)我知道这可能会被归类为最差的做法。
2)我正在测试我能推动JS的程度。
'use strict';
var target = {
name: 'it worked'
}
document.getElementById('target').addEventListener('click', myFunction);
function myFunction(e) {
alert(e.target.id.name); //dies right here
}
<div id="target"></div>
答案 0 :(得分:2)
您可以使用eval
或window[e.target.id]
提及的@Slai执行此操作。
小心eval: Why is using the JavaScript eval function a bad idea?
var target = {
name: 'it worked'
}
document.getElementById('target').addEventListener('click', myFunction);
function myFunction(e) {
//alert(eval(e.target.id).name);
alert(window[e.target.id].name);
}
<div id="target">div</div>