对象属性动态

时间:2014-01-09 20:41:34

标签: javascript jquery

<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?

以下是我的研究引导我的几个网站。要么我不理解他们说的是什么,要么他们与我的问题不完全相关。

由于

1 个答案:

答案 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']);
    });       
});