2016-11-30 16 views
3

は、すべてのものは、罰金になりますが、私は使用window['answeredQ'+i]jQueryの変数宣言

var count = 5; 
for(var i=0;i<count;i++){ 
    var className = '.myclass'+i; 
    var answeredQ+i = $(className).map(function(){ 
     return $(this).text(); 
    }).get(); 
} 
+0

利用のeval ...... – Mahi

+0

詳細は、「変数変数」についての記事を読みますか? – Dev

+0

http://www.w3schools.com/jsref/jsref_eval.asp – Mahi

答えて

1
var count = 5; 
var answered = {}; 
for(var i=0;i<count;i++){ 
    var className = '.myclass'+i; 
    answered['Q' + i] = $(className).map(function(){ 
     return $(this).text(); 
    }).get(); 
} 

今、あなたが最初の変数にアクセスするためにanswered.Q1またはanswered['Q1']を使用することができ、第二変数のQ2など

何を達成しようとしているが」として知られています変数変数 '。多くのプログラミング言語でサポートされていますが、Javascriptでは直接的な答えはないので、新しい変数を格納するために配列やオブジェクトを使用する必要があります。それを使用する方法を次に"Variable" variables in Javascript?

+0

で宣言された変数と同じです – Dev

0

変数answeredQ + I取得エラーを宣言していますが、おそらくより良い、むしろ直接グローバルスコープに比べて、配列に答えを割り当てるとき。

var count = 5; 
 
for (var i = 0; i < count; i++) { 
 
    var className = '.myclass' + i; 
 
    window['answeredQ' + i] = $(className).map(function() { 
 
    return $(this).text(); 
 
    }).get(); 
 
}

+0

この 'window ['answeredQ' + i]'はグローバルスコープで変数を作成します。 – Aruna

+0

はい、理想的ではないと言われています。 – synthet1c

+0

この__window ['answeredQ' + i] __ outside forループを使用する方法は? – Dev

0

この変数宣言が無効であるように、すべてのこの動的鍵を保持し、以下のようにforループ外同じものを使用するobjectを使用することができます。

var count = 5; 
 
var answers = {}; 
 

 
for(var i=0;i<count;i++){ 
 
    var className = '.myclass'+i; 
 
    answers['answeredQ' + i] = $(className).map(function(){ 
 
     return $(this).text(); 
 
    }).get(); 
 
} 
 

 
console.log(answers); 
 

 
Object.keys(answers).forEach(function(key) { 
 
    console.log(key + ': '); 
 
    console.log(answers[key]); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>