如何在单击每个按钮时添加相应的值?
使用我当前的脚本它几乎可以工作,但它会添加以前的每个值,而不是仅添加当前值:
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;
});
});
答案 0 :(得分:2)
尝试声明全局可见变量。
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;
});
});