用jQuery输入数组和

时间:2013-10-07 09:17:33

标签: jquery html

您好我的数组名称和类

的输入数量未知
<input type="hidden" name="hidden[1]" class="sum" value="31">
<input type="hidden" name="hidden[2]" class="sum" value="21">
<input type="hidden" name="hidden[3]" class="sum" value="321">
<input type="hidden" name="hidden[4]" class="sum" value="-31">
<input type="hidden" name="hidden[5]" class="sum" value="31.12">
<input type="hidden" name="hidden[6]" class="sum" value="0">

问题是如何将我尝试的那些字段的所有值加起来使用.each()和getElementByClassName,但这不会起作用

5 个答案:

答案 0 :(得分:7)

迭代匹配的元素并将它们的值加在一起:

var total = 0;
$( ".sum" ).each( function(){
  total += parseFloat( $( this ).val() ) || 0;
});

我正在使用$.each()来迭代与.sum类匹配的所有项目,然后使用value提取.val()属性。一旦我们有了这个值,我们需要确保它是数字的,所以我使用了parseFloat()。如果parseFloat()返回虚假值,则会使用0

参考文献:

答案 1 :(得分:6)

我尝试使用它们,它对我有用。检查您是否使用了 parseFloat ...
如果你将'sum'作为一个类来定义必须计算的所有元素,那么下面的代码应该可以工作....

$(document).ready(function () {
    var total = 0;
    $('.sum').each(function (index, element) {
        total = total + parseFloat($(element).val());
    });
    alert(total);
});

答案 2 :(得分:3)

var totalSum = 0;
$('.sum').each(function () {
    totalSum += parseFloat(this.value);
});

DEMO

答案 3 :(得分:2)

你可以这样做

var total = 0;
$('.sum').each(function() {
total += parseFloat($(this).val());
});

答案 4 :(得分:0)

使用each jQuery函数迭代input.sum元素就足够了。

var sum = 0;
$('input.sum').each(function() {
   var value = +this.value || 0;
   sum += value;
});

Working demo