jquery从sum减去(数学运算)

时间:2012-11-27 19:22:33

标签: jquery

我有这个jquery代码:

<script type='text/javascript'>
$(window).load(function(){
 $('input:checkbox').change(function(){
    var tot=200;
    $('input:checkbox:checked').each(function(){
        dat=$(this).val();
        tot-=parseInt(dat);
    });
    if (tot < "20") {
        alert("You dont have any money!");
        for(i = 1; document.getElementById("bifa" + i) !== null; i++) {
            if (document.getElementById("bifa" + i).checked)
            {
            } else {
                document.getElementById("bifa" + i).disabled = true;
            }
        }
    }
    $('#outputDiv').html("You have: " + tot + " RON")
  });
});
</script>

它的作用是从总和中减去一定数量。你可以看到它在这里工作

http://jsfiddle.net/a2mue/1/

我刚在每一行添加了一个下拉选择,并在选中它旁边的复选框时启用。您可以看到在复选框和选择下拉列表之后是​​一个数字,表示将从总和中减去的金额。我想,当我从下拉列表中选择某个值x2x3时,复选框的值将乘以2或3,具体取决于选择和要减去的总和。例如,如果我检查列NOV WED 28/row 06-07并选择x2,则输出应为“您有200 - (30x2)=140”,如果我取消选中输入框以反转操作。

那你可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

我更改了您的示例,此处已修改:http://jsfiddle.net/abaLA/

total = 200;
function calcSum(){
    var sum = 0;
    $('input[type="checkbox"]').each(function(){
        var td = $(this).parent('td');
        if($(this).attr('checked')){           
            sum += td.find('select').val() * 1 * (td.html().split('</select>')[1] * 1);
            td.find('select').attr('disabled',false);
        } else {
            td.find('select').attr('disabled',true);
        }
    });
    return sum;
}

function getTotal(){
    alert(total - calcSum());
}

$('input[type="checkbox"]').click(function(){
    getTotal();
});

$('.florin select').change(function(){
    getTotal();
});