如何使用jQuery获取,解析和总结表的所有tds?

时间:2011-08-10 22:29:29

标签: javascript jquery

我有一个id为“#stock-hotdogs”的表,其中最后一列始终是“.subtotal”类。小计始终采用以下格式:$ 99.00。所以我需要知道的是如何获取所有这些td的数量,将它们相加并将它们存储在变量中。应该怎样走?

5 个答案:

答案 0 :(得分:2)

你可以这样做:

var cents_total = 0;

$('#stock-hotdogs .subtotal').each(function() {
    var value = $.trim($(this).text());
    var parts = value.substr(1).split('.');
    cents_total += +parts[0] * 100 + (+parts[1] || 0);
});

我这里不使用parseFloat,因为不应该使用浮点值进行财务计算(舍入错误)。将分值转换为美元应该是微不足道的:)

答案 1 :(得分:1)

var inputs = $('td.subtotal', '#stock-hotdogs').find('input');

var total = 0;

$(inputs).each(function() {
    total += parseFloat( $(this).val().replace(/[^\d\.]+/g, ''));
});

Here是一个实时工作示例或

不使用输入元素的第二个版本......

$('#totalbtn').click(function() {
    var total = 0;
    $('td.subtotal', '#stock-hotdogs').each(function() {
        total += parseFloat( $(this).text().replace(/[^\d\.]+/g, ''));
    });

});

HERE就是一个例子......

答案 2 :(得分:0)

var subTotals = $('#stock-hotdogs td.subtotal');
var sum = 0;

subTotals.each(function() {
    sum += parseFloat($(this).text().substr(1));
});

alert(sum);

工作示例:http://jsfiddle.net/FishBasketGordo/f5V9P/

答案 3 :(得分:0)

使用:

var total=0;
$('#stock-hotdogs .subtotal').text(function(i,v){
    total+=parseFloat(v.substr(1));
});

alert('total: $'+total.toFixed(2));

答案 4 :(得分:0)

看看JQuery Calculation插件:它允许您使用jQuery选择器指定要求和的字段。使用它你会做这样的事情:

$("#stock-hotdogs").find("td.subtotal").sum();
相关问题