我想以更有效的方式在变量中保存价值。 我试着写一个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..
有更有效的方法吗?
答案 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;
}