循环内JavaScript中的变量变量

时间:2018-09-10 08:53:14

标签: javascript jquery

var x = 1;
var ctr = 5;
while (x<=ctr){
    var ss_+x = $('input[name=IDMenu_'+x+']').val();
    x++;
}

正如您在上面看到的,我有一个循环,该循环将遍历名称为IDMenu_1的输入字段到IDMenu_5。我试图使用语法var ss_+x使变量名本身成为变量;但是,这是不正确的,并且不起作用。

如果我不使用循环,这就是我要做的:

var ss_1 = $('input[name=IDMenu_1]').val();
var ss_2 = $('input[name=IDMenu_2]').val();
var ss_3 = $('input[name=IDMenu_3]').val();
var ss_4 = $('input[name=IDMenu_4]').val();
var ss_5 = $('input[name=IDMenu_5]').val();

是否可以在循环中完成此操作?

2 个答案:

答案 0 :(得分:2)

您正在尝试使用动态名称创建变量,以便可以使用window[variable_name]

注意::在这种情况下,IMO可以使用值数组代替。

var x = 1;
var ctr = 5;

while (x <= ctr) {
  window["ss_" + x] = $('input[name=IDMenu_' + x + ']').val();
  x++;
}

console.log(ss_1, ss_2, ss_3, ss_4, ss_5);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input name="IDMenu_1" value="10">
<input name="IDMenu_2" value="20">
<input name="IDMenu_3" value="30">
<input name="IDMenu_4" value="40">
<input name="IDMenu_5" value="50">

答案 1 :(得分:2)

最好使var为数组,然后将项目推入其中。

var x = 1;
var ctr = 5;
var ss = [];
while (x<=ctr){
   ss.push($('input[name=IDMenu_'+x+']').val());
   x++;
}  

然后您将在

中获得值
console.log(ss[0]);
console.log(ss[1]);
// ...