根据复选框值更改总和

时间:2014-05-06 15:30:05

标签: javascript jquery

我有一个跨度,在初始加载时,显示所有复选框的总和(全部选中)。取消选中其中一个复选框后,该复选框中的值应从总和中减少。我已经尝试过这个,但是当取消它时,它不会降低该值,而是将值加倍。例如。检查值:42,13,100 = 155,取消检查42应该给113,但结果是310。

演示:http://jsfiddle.net/M7ghD/6/

var sum = 0;
$('.numbers').each(function() {
    sum += parseInt($.text(this), 10);
});

$(".total").text(sum);


$('.checkbox').change(function () {
       //assign
       var sumChange = 0;    

      //for each checked checkbox
      $('.checkbox:checked').each(function () {
          $('.numbers').each(function() {
              sumChange += parseInt($.text(this), 10);
          });
      });

       $(".total").text(sumChange);

  });

1 个答案:

答案 0 :(得分:5)

我将更改功能更改为:

$('.checkbox').change(function () {
    //assign
    var sumChange = 0;
    //for each checked checkbox
    $('.checkbox:checked').each(function () {
            sumChange += parseInt($(this).parent().text(), 10);
    });
    $(".total").text(sumChange);
});

<强> jsFiddle example