在表格中获得第2个总和

时间:2013-08-21 14:05:06

标签: javascript jquery html-table

我想计算每一行中第二个<td>项的总和,并将总数加到我的div中。

我的JS如下

$('.table tbody tr:gt(0)').each(function () {

var mixTotal = parseInt($(this).find('td:nth(2)').html());

// Add total to div 
$('.totals').text(mixTotal);
});

DEMO HERE http://jsfiddle.net/5pnMh/1/

我的Html是一个标准的HTML表格,其中包含thead tbodytfoot

我似乎无法让它发挥作用。我可以得到每个值,但不知道如何添加它们。

寻求帮助

4 个答案:

答案 0 :(得分:3)

var mixTotal = 0;
$('tbody tr').each(function () {
    mixTotal += parseInt($(this).find('td:eq(1)').text(),10);
});
$('.totals').html(mixTotal);

jsFiddle

您的最后一行数字不会包含在TOTAL中,因为它是<tfoot>。另请注意,仅因为您的第一行是<thead>,您就不会遗漏<tr></tr>代码。

答案 1 :(得分:2)

我认为最好将结果存储在变量中,然后在循环后将其附加到div。

// Set global var
var mixTotal = 0;
$('.table tbody tr').each(function () {
    // Just add the number
    mixTotal = mixTotal+parseInt($(this).find('td:nth-child(2)').html());
});
// And finally, add total to div 
$('.totals').text(mixTotal);

http://jsfiddle.net/5pnMh/3/

如果您将:nth(2)替换为:nth-child(2),您的代码可能会部分有效。

答案 2 :(得分:1)

如果您要对第二列中的值求和,请尝试以下方法:

var mixTotal = 0;
$('.table tbody tr').add('.table tfoot tr').each(function () {
    mixTotal += parseInt($(this).find('td:eq(1)').text(), 10);   
});
$('.totals').text(mixTotal); // Add total to div

<强> jsFiddle example

答案 3 :(得分:0)

如果您有小数

,请使用此代码
var mixTotal = 0;
$('tbody tr').each(function () {
    mixTotal += parseFloat($(this).find('td:eq(1)').text(),10);
});
$('.totals').html(mixTotal);

参见 Demo