从一系列类中保存了很多变量

时间:2013-06-26 09:12:34

标签: javascript jquery variables

我想以更有效的方式在变量中保存价值。 我试着写一个for循环:

for(i=1; i <= $('input').length; i++) {
     var x+i = $('custom'+i).val());
}

我得到的是:'Uncaught SyntaxError:Unexpected token +' 这实际上是预期它不会工作但我必须先尝试才能在这里询问

HTML

<input type="text" class="custom1">
<input type="text" class="custom2">
<input type="text" class="custom3">
till custom12..

我知道我可以这样做:

var x1 = $('.custom1').val(),
x2 = $('.custom2').val(),
x3 = $('.custom3').val(),
    till 12..

有更有效的方法吗?

5 个答案:

答案 0 :(得分:3)

使用数组。

var x = [];
for(var i=1; i <= $('input').length; i++) {
     x.push($('.custom'+i).val());
}

答案 1 :(得分:1)

var x = [];
$('input').slice(0,11).each(function(index){
    x.push($(this).val());
});

如果页面上实际只有12个输入,则可以省略.slice(0,11)

答案 2 :(得分:0)

根据您之后要对变量执行的操作,您还可以执行以下操作:

var results = {};
for(i=1; i <= $('input').length; i++) {
    results['x' + i] = $('.custom'+i).val());
}

这会将成员添加到'结果'对象中,以便您可以执行以下操作:

var xOne = results.x1;
var xOneAgain = results['x1'];
var xOneLastTime = result['x' + 1];

工作小提琴here

Quentin的回答可能是最自然的答案。

答案 3 :(得分:0)

你可以试试这个

var arr = [];
var len = $('input').length;
for(var i=1; i <= len; i++) {
     arr.push($('.custom'+i).val());
}

上面的大多数答案都是正确的,但每次都评估$('input').length,您可以通过评估一次并分配给len之类的变量来提高性能,而不是在循环中使用len变量

答案 4 :(得分:-2)

 var x = 0;
for(i=1; i <= $('input').length; i++) {
     x += parseInt($('.custom'+i).val()) || 0;
}