2016-06-28 18 views
1

私はExpressionEngineを使用していて、自分のチャンネルエントリをJSONに変換しています。jQueryとHTML5データを使用してJSONデータを動的に呼び出す - *

私がしようとしているのは、data-*属性に格納されたIDを使用して特定のJSONオブジェクトからの情報でSweet Alert 2オーバーレイを設定することです。ここで

は、JSONの例である:

var director_45 = { 
    "title": "Andy H", 
    "entry_id": 45, 
} 

そして、私はこのような単純なjQueryの警告をすれば、それは私の名前を返します。しかし

alert(director_45.title) 

、私はこのような何かを行う場合jQueryので:それを発射するには、このHTMLで

$('.trigger-director').on('click', function() { 
    var director_id = $(this).data('director'); 
    var director = 'director_' + director_id; 
    alert(director.title); 
}); 

<div class="col-xs-6 col-md-3"> 
    <div class="director-box"> 
    <img src="/images/made/images/uploads/images/Andy_400_300_c1.jpg" class="img-responsive" width="400" height="300" alt="" /> 
    <h3>Andy H</h3> 
    <p>Director</p> 
    <a class="trigger-director" data-director="45">Find out more</a> 
    </div> 
</div> 

[詳細を見る]リンクをクリックしたときのアラートは、「未定義」と表示されます。

私はここにもjsFiddleリンクを作成しました - https://jsfiddle.net/zu103vxc/

任意のアイデアそれは私が間違っているおよび/または欠けていることは何か?

+0

'VARディレクター=ウィンドウの[ 'director_' + director_id];'グローバル変数はwindowオブジェクトのプロパティであり、あなたがアクセスできます彼らは配列の表記を使用して –

+0

ディレクターはオブジェクトではない、ディレクターは、文字列 'director_45'、オハイオ州@JuanMendes、1つは便利でしょう –

+0

[JavaScript動的変数名]の可能な重複(http://stackoverflow.com/questions/22727711)/javascript-dynamic-variable-names) –

答えて

1

使用のeval()

var director_45 = { 
    "title": "Andy H", 
    "entry_id": 45, 
} 

alert(director_45.title) 

$('.trigger-director').on('click', function() { 
    var director_id = $(this).data('director'); 
    var director = 'director_' + director_id; 
    alert(eval(director).title); 
}); 

またはグローバル変数

var director_45 = { 
    "title": "Andy H", 
    "entry_id": 45, 
} 
window.director_45 = director_45; 
alert(director_45.title) 

$('.trigger-director').on('click', function() { 
    var director_id = $(this).data('director'); 
    var director = 'director_' + director_id; 
    alert(window[director].title); 
}); 
+1

大変ありがとう、グローバルなvarルートに進むことに決めました。私に大規模な頭痛を保存:) –

関連する問題