我有一个跨度,在初始加载时,显示所有复选框的总和(全部选中)。取消选中其中一个复选框后,该复选框中的值应从总和中减少。我已经尝试过这个,但是当取消它时,它不会降低该值,而是将值加倍。例如。检查值: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);
});
答案 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 强>