2011-05-26 10 views
1

IDを含む変数があります。JavaScript変数変数(構文エラー)

var mediaid = '5'; 

と私は変数が、私はjQueryの.append関数の内部で変数の変数を取得しようとしている

var t1 = 'First'; 
var t2 = 'Second'; 
var t3 = 'THird'; 
etc... 

を設定しています。

$('#block').append('<span>{t+mediaid}</span>'); 

たとえば、mediaidが3の場合、{t+mediaid}はt3でなければなりません。しかし、私は構文エラーがあります。あなたはそれを修正することができます..

+3

それをしないでください。配列を使用します。 – Quentin

+0

@Quentine通常、配列を使用しますが、今回は詳細があるので、配列を使用することはできません。私はこの細部を書いていません。なぜなら、それは私の質問には関係していないからです:)しかし、あなたが正しいと感謝します。 – Eray

+0

@Erayこの詳細はこの質問に関連していませんが、私はまだそれについて聞きたいと思います。その変数セットが必要な理由を要約してください(要するに)? –

答えて

3
$('#block').append('<span>'+{t+mediaid}+'</span>'); 

私はこれが可能だとは思わない。

あなたは何をする必要がある場合があります:

$('#block').append('<span>'+window['t'+mediaid]+'</span>'); 
          //if all those variables are in the window's scope 

ベター:

var mediaid = '5'; 
var t = ['', 'first', 'second', 'third', ...]; 

$('#block').append('<span>'+t[mediaid]+'</span>'); 
+0

いいえ、それは 't'(undefined)と' mediaid'の値を返します。 –

+0

@Justin、私の更新を参照してください – Neal

+0

@Jeremy、そこにあるもの – Neal

1

代わりに、魔法のような名前の変数の配列にあなたの変数を格納しないのはなぜ?次に、配列要素にインデックスでアクセスできます。

var mediaid = 5; 
var t = [ 
    'Zeroth', 
    'First', 
    'Second' 
    // etc... 
]; 

$('#block').append('<span>' + t[mediaid] + '</span>'); 
-1

これを試してみてください:

$('#block').append('<span>' + eval('t'+mediaid) + '</span>'); 
+1

これには 'eval() 'window'オブジェクトによって変数にアクセスする $( '#block')。append([''、window [t + mediaid]、 ''] .join( '')); –

+0

@The Mask:文書に '

' が含まれている場合、' window ["t5"] 'は、変数' t5'の値ではなくDOM要素への参照を返します。参照:http://stackoverflow.com/questions/6130340/window-object-acting-strange-in-chrome-and-ie –