我已经看过这个问题的很多不同的变化,但我似乎找不到一个特别适合我正在做的事情。
我有一个由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..
}
答案 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);
});