一切顺利,但当我声明变量已回答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();
}
答案 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.Q1
或answered['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>