私はeval()を使用せずに以下を実行しようとしています。多くの投稿が遅くて邪悪だと言っているので、いつも別の方法があるので使用しないでください。evalを使用せずにjavascript文字列をコードに変換する
JS(私はjqueryのを使用しています注意してください)
$('a').click(function() {
//Assign myVar to the id value of the a tag
var myVar = $(this).attr('id');
$.getJSON("assets/js/json.js", function(json) {
alert("json."+myVar+".thumb");
});
});
と私はmyVarを
<a id="imageID1" href="#">A link 1</a><br />
<a id="imageID2" href="#">A link 2</a>
基本JSONファイル
{
"imageID1" : {
"thumb" : "assets/images/312px.png",
"zoomThumb" : "assets/images/gallery/_AR_0063_m_thumb.jpg",
"large" : "assets/images/gallery/_AR_0063.jpg"
},
"imageID2" : {
"thumb" : "another.png",
"zoomThumb" : "assets/images/gallery/_anotherb.jpg",
"large" : "assets/images/gallery/another.jpg"
}
}
に値を渡すいくつかの基本的なHTMLを、持っています
クリックごとに各リンクのIDがmyVarに渡されますが、これはうまくいきますが、警告値が正しくありません。
たとえば、imageID2がクリックされている場合、警告は実際には「another.png」と表示されますが、実際に実行するコード「json.imageID @ .thumb」が表示されます。
今私は、トリックを行います
alert(eval("json."+myVar+".thumb"));
にアラートラインを変更することができますが、前述のようにすることは、既知の問題のためにevalを使用する必要はありません。
これを行うための代替手段です。 ご協力いただきありがとうございます。
ベン
可能重複[ダイナミックキーを使用してオブジェクトにアクセスするには?](http://stackoverflow.com/questions/6921803/javascript-how-to-access-json -object-using-dynamic-key) –