-1

我想计算<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);
});

在这里演示http://jsfiddle.net/5pnMh/1/

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

我似乎无法让它工作。我可以获得每个值,但不确定如何添加它们。

寻求帮助

4

5 回答 5

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

jsFiddle

您的最后一行数字不会包含在 TOTAL 中,因为它是<tfoot>. 另请注意,仅仅因为您的第一行是 a <thead>,您可能不会遗漏<tr></tr>标签。

于 2013-08-21T14:10:18.620 回答
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)为 a :nth-child(2),您的代码可能部分有效。

于 2013-08-21T14:10:59.920 回答
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 示例

于 2013-08-21T14:15:39.197 回答
0

如果您有十进制数字,请使用此代码

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

演示

于 2013-12-29T17:40:03.257 回答
0

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

if u have both types of values like text or nan value

于 2021-09-08T11:52:21.043 回答