在Button上添加值单击jQuery

时间:2015-03-05 22:29:15

标签: javascript jquery html css

如何在单击每个按钮时添加相应的值?

使用我当前的脚本它几乎可以工作,但它会添加以前的每个值,而不是仅添加当前值:

jQuery(function() {
    total = 0;
    jQuery("input").click(function() {
        jQuery("input:checked").not('input[value="reset"]').each(function() {
            total += parseFloat(jQuery(this).val());
        });
        jQuery("#Totalcost").html("Save up to " + total + "%");
    });

    jQuery('input[value="reset"]').click(function(){
        jQuery('span#Totalcost').html("Calculate your Savings!");
        total = 0;
    });
});

2 个答案:

答案 0 :(得分:2)

尝试声明全局可见变量。

JSFiddle

var total = 0;

jQuery(function() {

    jQuery("input").click(function() {
        jQuery("input:checked").not('input[value="reset"]').each(function() {
            total += parseFloat(jQuery(this).val());
        });
        jQuery("#Totalcost").html("Save up to " + total + "%");
    });

    jQuery('input[value="reset"]').click(function(){
        jQuery('span#Totalcost').html("Calculate your Savings!");
        jQuery("input:checked").prop('checked', false);
        total = 0;
    });
});

<强>信息

total变量被声明为outsite jQuery(function (){,因为我不知道你在这个函数之外不需要这个变量。

顺便说一下。也许您对jQuery change event感兴趣?

我认为在这种情况下这是更好的选择。

答案 1 :(得分:0)

每次单击复选框时,都不会将total设置为零。在点击事件处理程序中将total重置为零:

jQuery(function() {
    var total = 0;
    jQuery("input").click(function() {
        total = 0;
        jQuery("input:checked").not('input[value="reset"]').each(function() {
            total += parseFloat(jQuery(this).val());
        });
        jQuery("#Totalcost").html("Save up to " + total + "%");
    });

    jQuery('input[value="reset"]').click(function(){
        jQuery('span#Totalcost').html("Calculate your Savings!");
        total = 0;
    });
});

JSFiddle