我有一个由代码生成的包含许多行和列的 html 表。其中一些 TD 有一个 ON 类来设置不同的样式。
表格的结构有页眉、正文和页脚行。
我想将每列中所有具有“ON”类的 TD 的数量相加,并将结果放在每列的最后一行(页脚)。
我该怎么做?(行列不是‘固定矩阵’,所以事先不知道表有多少行列)
示例表:
data | id_1 | id_2 | id_3 | ...
2012-06-20 | "ON" | | | ...
2012-06-21 | "ON" | | | ...
2012-06-22 | "ON" | "ON" | | ...
2012-06-23 | "ON" | | "ON" | ...
2012-06-24 | "ON" | "ON" | | ...
tot | 5 | 2 | 1 | ...
更新:混合 CRANIO 和 ALNITAK 的解决方案,结果如下:
var a = [];
$('td').each(function() {
var n = $(this).index();
if($(this).hasClass('on')){
a[n] = a[n] ? a[n] + 1 : 1;
}else{
a[n] = a[n] ? a[n] : 0;
}
});
var t = $('<tr>').appendTo('#tableID > tfoot');
$.each(a, function(i, n) {
t.append($('<td>', { text: i === 0 ? 'total' : n }));
});
通过这种方式,您可以在没有 TD.on 的列中添加零(或空白 ---> a[n] = a[n] ? a[n] : ''; <--- 并解决一些小错误表格末尾的空列(在 alnitak 的优雅解决方案中,未添加最后一行的 TD)
PS对于在不同的TD.class上创建不同的总行也很有用,根据不同的类附加更多的TR。