如何使用jQuery来计算我列中值的总数?
问题描述:
创建的列对于总计行应该有“7”。 Redeemed列的总行应该有“6”。有时候,只有两个月的行或者可能有十行。我怎样才能将这些值累加起来,并使用jQuery将它们粘贴在表格的最后一行?如何使用jQuery来计算我列中值的总数?
<table cellspacing="0" rules="all" border="1" id="DataGrid2" style="border-collapse:collapse;">
<tbody><tr>
<td>CreationDate</td><td>Created</td><td>Redeemed</td>
</tr><tr>
<td>August 2011</td><td>5</td><td>6</td>
</tr><tr>
<td>July 2011</td><td>1</td><td>0</td>
</tr><tr>
<td>June 2011</td><td>1</td><td>0</td>
</tr><tr>
<td>Total</td><td> </td><td> </td>
</tr>
图片:
答
好吧,这一个获取值两列...
var c2Total = 0;
var c3Total = 0;
$("tr").find("td").each(function(){
var curVal = parseInt($(this).text());
if(!isNaN(curVal)){
if($(this).index() == 1){
c2Total += parseInt($(this).text());
}
else if($(this).index() == 2){
c3Total += parseInt($(this).text());
}
}
});
$("#DataGrid2 tr:last td:eq(1)").text(c2Total);
$("#DataGrid2 tr:last td:eq(2)").text(c3Total);
你可以在这里看到小提琴:http://jsfiddle.net/Broham/Rtm8p/2/
答
对于每一列i
,通过表中的每一行(即,每个<tr>
)环,跟踪运行总和为i
第<td>
在那一行。
答
var total = 0;
$('#DataGrid2 td:nth-child(3)').each(function(){
total += parseInt($(this).text()) || 0;
});
$('#DataGrid2 td:last').text(total);
+0
这工作,但只收取赎回列。创建的列是空白的。有任何想法吗? –
答
不是干净的解决方案,但应支持无限数量的列而无需进一步编辑:
$(function() {
var totals = [];
$("#DataGrid2 tr:gt(0)").each(function(){
$(this).find("td:gt(0)").each(function(){
var val = (parseInt($(this).text()) || 0);
totals[$(this).index() - 1] = ((totals[$(this).index() - 1]) ? totals[$(this).index() - 1] + val : val);
});
});
for(var i = 0; i < totals.length; i++) {
$("#DataGrid2 tr:last td:eq(" + (i + 1) + ")").text(totals[i]);
}
});
这工作,但只获取创建的列。我怎样才能得到赎回的总额呢? –
更新后的版本应该都可以。 –