Jquery在单击时添加值

Jquery在单击时添加值,jquery,Jquery,在执行单击功能时,我在计算值时遇到问题 我有一些简单的单选按钮: <input type="radio" name="product1" class="price" value="4" /> 4 <input type="radio" name="product2" class="price" value="6" /> 6 好,其他问题 如果我们有两个单独的单击功能,比如: <input type="radio" name="product1" class="pr

在执行单击功能时,我在计算值时遇到问题

我有一些简单的单选按钮:

<input type="radio" name="product1" class="price" value="4" /> 4
<input type="radio" name="product2" class="price" value="6" /> 6
好,其他问题

如果我们有两个单独的单击功能,比如:

<input type="radio" name="product1" class="price" value="4" /> 4
<input type="radio" name="product2" class="price" value="6" /> 6

<input type="radio" name="product1" class="number" value="3" /> 3
<input type="radio" name="product2" class="number" value="7" /> 7
如何将.price收音机和.number收音机的值相加? 除此之外,请确保每个按钮只能添加一个值,而不是不管是哪组单选按钮,它都会添加所有值。

试试看

var price = 0;

$('.price').click(function() {
    price += parseInt($(this).val(), 10);
}

我不认为我从显示/选择价格的元素方面理解了这个问题,因此我只想添加一些提示,希望它们会有用:

要选择给定名称的所有单选按钮(例如“product1”),请执行以下操作:

要选择选中的givan名称的所有单选按钮(只能有一个):

要选择所有选中的单选按钮,而不考虑其名称,请执行以下操作:

$('input:radio:checked')
函数汇总输入元素jQuery集合中的所有值(可解析为数字):

function sumValues($inputs) {
    var sum = 0;
    $inputs.each(function () { sum += +this.value; });
    return sum;
};
然后,处理程序应该如下所示(插入适当的选择器):

$()。单击(函数()){
//将选择器更改为选择所需收音机的选择器
var sum=sumValues($('input:radio[name=“product1”]”);
//这是你的总数
});
您不想更新总和(在事件上),而是需要每次重新计算它

您可能不需要
,如果
名称
属性足以识别要发送到服务器的信息,那么它就应该足够了


我希望这些有帮助。

为什么这是
收音机
而不是
复选框
(有两个不同的名称,因此有两个独立的
收音机
)?另外,您想向其中添加哪些值和/或在添加过程中遇到什么问题(您知道,.val()返回一个字符串…)?我希望编辑可以更好地解释这是一个很好的答案。我只想指出,每次你点击一个单选按钮,它都会增加一个值,即使它以前被添加过。有没有办法确保你只能添加一次?@Chriser你有多少这样的单选按钮
。price
。number
?在你的编辑中,我只有一个,如果是的话,你加起来是什么?@Vega大约有6组单选按钮,大约有4-6个选项。我想能够从每个组点击一个选项和价值将被加起来。如果我改变选择,总数也会改变。
$('input:radio[name="product1"]')
$('input:radio[name="product1"]:checked')
$('input:radio:checked')
function sumValues($inputs) {
    var sum = 0;
    $inputs.each(function () { sum += +this.value; });
    return sum;
};
$(<whatever-triggers-recalc>).click(function() {
    // change selector to the one that selects the radios you need summed
    var sum = sumValues( $('input:radio[name="product1"]') );
    // here, you have your sum
});