<div id="bach">Bach</div>
<div id="show">about composer</div>
$(window).load(function(){
bach = {"bdate": 1685, "bplace": "Eisenach, Germany"}
$("div").click(function(){
$("#show").text(this.id['bdate']); // This is the problem
});
});
嗨,我正在尝试创建一种动态访问bach对象的方法。如果我使用bach而不是this.id一切正常。不知何故,我需要找到一种方法将this.id转换为我可以在访问bach对象中的属性的上下文中使用的东西。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Member_Operators
Javascript: interpret string as object reference?
以下是我的研究引导我的几个网站。要么我不理解他们说的是什么,要么他们与我的问题不完全相关。
由于
答案 0 :(得分:2)
由于您明显在窗口范围内,因此可以使用括号表示法
$(window).load(function(){
bach = {"bdate": 1685, "bplace": "Eisenach, Germany"}
$("div").click(function(){
$("#show").text(window[this.id]['bdate']);
});
});
这是一个好主意还是不是另一回事
或按照Rocket Hazmat的建议
var obj = { bach : {"bdate": 1685, "bplace": "Eisenach, Germany"}};
$(window).load(function(){
$("div").click(function(){
$("#show").text(obj[this.id]['bdate']);
});
});