我正在尝试创建一个运行总计,但是没有成功,你会采用什么方式执行此操作:
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);
});
这是我的完整代码。我觉得我做错了,这不会给我一个跑步总数吗?
任何帮助!?
答案 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));
答案 2 :(得分:0)
您的代码仅添加jQuery对象$('.price')
中第一个元素的文本。如果您希望此选择器将所有具有“价格”等级的元素相加。然后你应该使用jQuery .each
函数循环遍历值的元素。
在添加过程中使用parseInt函数也不会受到影响。