JQuery变量声明

时间:2016-11-30 07:15:31

标签: javascript jquery

一切顺利,但当我声明变量已回答Q + i 获取错误

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

3 个答案:

答案 0 :(得分: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.Q1answered['Q1']来访问第一个变量,使用Q2来获取第二个变量等等。

您尝试实现的目标称为“变量变量”。许多编程语言都支持它,但在Javascript中没有直接的答案,所以你必须使用数组或对象来包含新的变量。

阅读“变量变量”了解更多详情:"Variable" variables in Javascript?

答案 1 :(得分:0)

使用window['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();
}

答案 2 :(得分:0)

由于此变量声明无效,您可以使用object来保存所有动态键,并在for循环之外使用相同的键。

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>