jQuery sum复选框值

我需要计算所有复选框的总和,并根据选择更新总数这里是html:

  . . .  

这是脚本

  $('input:checkbox').change(function () { var total = 0; var basic_single = parseInt($('#basic_single:checked').val()); var basic_double = parseInt($('#basic_double:checked').val()); var total = basic_single + basic_double; $("#total").val(total); }); 

如果两者都被选中它工作正常,但只有一个检查返回NaN,将有更多的复选框,而不仅仅是这两个

您只需要考虑检查的项目来计算总数。 为此,您只能定位已检查的元素并迭代每个循环以添加其值以计算总和。 以下示例不涉及单个元素的硬编码。

 $('input:checkbox').change(function () { var total = 0; $('input:checkbox:checked').each(function(){ // iterate through each checked element. total += isNaN(parseInt($(this).val())) ? 0 : parseInt($(this).val()); }); $("#total").val(total); }); 

示例: https : //jsfiddle.net/8p3ftmuh/2/

您可以使用.not()从计算中排除#total元素值, .get()Array.prototype.reduce()+运算符将value:checkboxNumber

 $(":checkbox").change(function(event) { $("#total").val(function() { return $(event.target.tagName).not("[type=text]") .get().reduce(function(a, b) { return +a.value + +b.value }) }) })