使用jQuery运行总计不一起添加数字

时间:2010-11-02 14:35:51

标签: jquery math

我正在尝试创建一个运行总计,但是没有成功,你会采用什么方式执行此操作:

var total = 0;
value = $('.price').text();
total += value;
$('#subtotal span').html(total);

所有这一切都将下一个值添加到“span”而不是实际添加数字!


编辑:来自OP发布的答案内容。

$('.addtocart').click(function(){
                $('#cart').show();
                var omPartNo = $(this).next().text();
                var supPartNo = $(this).next().next().text();
                var cat = $(this).next().next().next().text();
                var desc = $(this).next().next().next().next().text();
                var manuf = $(this).next().next().next().next().next().text();
                var list = $(this).next().next().next().next().next().next().text();
                var disc = $(this).next().next().next().next().next().next().next().text();
                var priceEach = $(this).next().next().next().next().next().next().next().next().text();
                $('#cart table').append('<tr class="tableRow"><td><a class="removeItem" href="#"><img src="/admin/images/delete.png"></img></a><td>' + omPartNo + '</td><td>' + supPartNo + '</td><td>' + cat + '</td><td>' + desc + '</td><td>' + manuf + '</td><td>' + list + '</td><td>' + disc + '</td><td class="price">' + priceEach + '</td></tr>');
                    var total = 0;
                    value = parseInt($('.price').text(), 10);
                    total += value;
                    $('#subtotal span').html(total);
            });

这是我的完整代码。我觉得我做错了,这不会给我一个跑步总数吗?

任何帮助!?

3 个答案:

答案 0 :(得分:2)

我认为你需要.each()在这里循环使用parseFloat(),因为它们是价格,因为:{/ p>

var total = 0;
$('.price').each(function() { total += parseFloat($.text([this]));
$('#subtotal span').html(total.toFixed(2));

答案 1 :(得分:0)

您可以使用Number()+明确转换为一个号码,我更喜欢parseInt()parseFloat(),原因如下:

value = +$('.price').text();
total += value;
$('#subtotal span').html(total);

或者,类似于使用每个的@ Nick的样本:

var total = 0;
$('.price').each(function() { total += +$.text([this]); });
$('#subtotal span').html(total.toFixed(2));

另请参阅:Hidden Features of JavaScript?

答案 2 :(得分:0)

您的代码仅添加jQuery对象$('.price')中第一个元素的文本。如果您希望此选择器将所有具有“价格”等级的元素相加。然后你应该使用jQuery .each函数循环遍历值的元素。

在添加过程中使用parseInt函数也不会受到影响。