Javascript 复选框状态有问题

Javascript 复选框状态有问题,javascript,jquery,checkbox,Javascript,Jquery,Checkbox,我有一个问题,我似乎不知道如何解决它。我有两个复选框,它们的值都是5。我只需要在选中复选框时将值5添加到变量中,在未选中复选框时将值5减去。我一直在使用jQuery,但到目前为止,我只添加了5个,当两个都被选中时,它会添加10个。到目前为止,它没有扣减任何东西。由于我有一些单选按钮,我正确地检查,我的代码是这样的 $(":checked").each(function(){ if ($(this).attr("type") == "checkbox"){ pricedif

我有一个问题,我似乎不知道如何解决它。我有两个复选框,它们的值都是5。我只需要在选中复选框时将值5添加到变量中,在未选中复选框时将值5减去。我一直在使用jQuery,但到目前为止,我只添加了5个,当两个都被选中时,它会添加10个。到目前为止,它没有扣减任何东西。由于我有一些单选按钮,我正确地检查,我的代码是这样的

$(":checked").each(function(){
    if ($(this).attr("type") == "checkbox"){
        pricediff += 5;
    }
}
在使用每个函数时,如果同时选中这两个函数,则会增加10。当然,这不是我们想要的。当复选框未选中时,它仍然必须扣除5。我不知道该怎么做——我对jQuery和JavaScript有点不在行。有人能帮我吗?谢谢


另外,这不是确切的代码,只是它的jist。

试试这样的代码
var-placediff
函数计算()

{

var n=$(“输入:选中”).length;

pricediff=n*5;

}


$(“:复选框”)。单击(计算)

试试这样的方法
var-placediff
函数计算()

{

var n=$(“输入:选中”).length;

pricediff=n*5;

}

$(“:复选框”)。单击(计算)

示例HTML

<input type="checkbox" class="test" />
<input type="checkbox" class="test" />
<input type="checkbox" class="test" />
<input type="checkbox" class="test" /><br />
<span id="result">0</span>
请参见示例HTML

<input type="checkbox" class="test" />
<input type="checkbox" class="test" />
<input type="checkbox" class="test" />
<input type="checkbox" class="test" /><br />
<span id="result">0</span>

请参见a@rahul有一个很好的答案,但这意味着所有复选框的值都必须为5

尝试此演示:

HTML:


PS.@rahul真棒的小提琴页面

@rahul有一个很好的答案,但这意味着所有复选框的值都必须为5

尝试此演示:

HTML:


PS.@rahul真棒的小提琴页面

要提高人们帮助你的机会,建议先接受你以前问题的一些答案。要提高人们帮助你的机会,建议先接受你以前问题的一些答案。谢谢。这是最合理的答案。我知道它在这里可以工作,但在我的代码上下文中,它不能像它应该的那样工作,因为有更多的值,它们都必须被添加。我不能一直添加checkedValue。我必须知道什么时候扣除。谢谢你的帮助,你让我走上了正确的道路。事实上,请看下面的例子。谢谢。这是最合理的答案。我知道它在这里可以工作,但在我的代码上下文中,它不能像它应该的那样工作,因为有更多的值,它们都必须被添加。我不能一直添加checkedValue。我必须知道什么时候扣除。不过,谢谢你的帮助,你让我走上了正确的道路。事实上,请看我下面的例子。这是正确的。我在代码的上下文中进行了检查,但它不起作用。但它确实回答了我的确切问题,而且它确实像我要求的那样工作。谢谢,这是对的。我在代码的上下文中进行了检查,但它不起作用。但它确实回答了我的确切问题,而且它确实像我要求的那样工作。非常感谢。
<input type="checkbox" class="test" value="5" />
<input type="checkbox" class="test" value="7" />
<input type="checkbox" class="test" value="2" />
<input type="checkbox" class="test" value="1" /><br />
<span id="result">0</span>
$(function(){
    $("input.test").change(function(){
        var $this = $(this);
        var value = $this.val();
        var checked = $this.is(":checked");
        if (checked) value = -value;
        var $r = $('#result');
        $r.text( (+$r.text()) - value)
    });
});