javascript数组的和值?

时间:2012-03-09 00:54:56

标签: jquery arrays sum

我已经看过这个问题的很多不同的变化,但我似乎找不到一个特别适合我正在做的事情。

我有一个由php / mysql查询动态创建的输入字段。值是数字,它们共享一个共同的类

<?php
   foreach ($garment_sizes as $key =>$value){echo '<input type="number" class="size_select" name="'.$value.'" onchange="qty_update()"/><label class="size_label">'. strtoupper($value).'</label>';
   }
?>

结果HTML:

<input type="number" class="size_select" name="s" onchange="qty_update()"/>
<label class="size_label">S</label>
<input type="number" class="size_select" name="m" onchange="qty_update()"/>
<label class="size_label">M</label> <!-- etc -->

我想创建一个函数来将所有字段与此类“size_select”

相加
function qty_update(){
    var values = $('.size_select').serializeArray();
    //having trouble writing the loop here to sum the array..
}

2 个答案:

答案 0 :(得分:9)

要对与特定选择器匹配的所有字段求和,您可以执行以下操作:

var total = 0;
$('.size_select').each(function() {
    total += parseInt($(this).val(), 10) || 0;
});

// the variable total holds the sum here

以函数形式:

function sumSizes() {
    var total = 0;
    $('.size_select').each(function() {
        total += parseInt($(this).val(), 10) || 0;
    });
    return(total);
}

答案 1 :(得分:4)

这是一种快速方法。请注意,如果您使用的是jQuery,通常应该使用jQuery来分配事件处理程序,因为它比直接在HTML标记中这样做更灵活:

$('input.size_select').change(function() {
    var sum = 0;
    $('input.size_select').each(function() {
         sum += parseInt($(this).val()) || 0
    });
    console.log(sum);
});