2014-01-09 184 views
1
<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?

這裏有幾個網站,我的研究使我。要麼我不理解他們在說什麼,要麼他們與我的問題並不完全相關。

感謝

回答

2

當您在窗口範圍很清楚,你可以用括號標記

$(window).load(function(){  
    bach = {"bdate": 1685, "bplace": "Eisenach, Germany"} 

    $("div").click(function(){ 
    $("#show").text(window[this.id]['bdate']); 
    });  
}); 

閹這是一個好主意,那是另一件事

或火箭的建議Hazmat

var obj = { bach : {"bdate": 1685, "bplace": "Eisenach, Germany"}}; 

$(window).load(function(){  
    $("div").click(function(){ 
     $("#show").text(obj[this.id]['bdate']); 
    });  
}); 
+0

我建議把'bach'放到它自己的對象中:'var obj = {bach: {...}};'然後你可以執行'obj [this.id] .bdate' :-) –

+1

@RocketHazmat - 正在考慮這個,我就是這麼做的,所以我添加了它到答案。謝謝 – adeneo

+0

很好,謝謝你們。 – user3179110