假设我有一张桌子:
<table id="myTable">
<thead>
<th> Col1 </th>
<th> Col2 </th>
</thead>
<tbody>
<tr><td>1</td><td>2</td></tr>
<tr><td>1</td><td>2</td></tr>
</tbody>
</table>
我想在名为 Col2 的列中添加值,即4.我不想按列的位置添加值,即answered here,因为列的位置是可变的。
答案 0 :(得分:1)
我建议如下:
var colNum = $('th').filter(function(){
return $(this).text().trim() == 'Col2';
}).index(),
sum = 0;
$('tbody tr').each(
function(i){
colValue = $(this).find('td').eq(colNum).text();
sum += parseInt(colValue);
});
参考文献:
答案 1 :(得分:1)
您可以使用
获取列索引var columnIndex = $("#myTable th").index(":contains('Col2')");
从那里,您可以使用您在问题中链接的代码段来收集总和并将结果输出到某个总单元格。
var sum = 0;
$("#myTable tbody tr").each(function() {
var td = $("> td", this).eq(columnIndex);
sum += td.text() | 0;
});
注意:x | 0
是一个转换为整数的小技巧。
答案 2 :(得分:1)
var index = $('table th:contains(Col2)').index(), // get index of th
sum = 0;
$('table tbody tr').each(function() {
sum += parseInt( $.trim( $('td:eq('+ index +')', this).text() ), 10);
});
$('td:eq('+ index +')', this).text()
获取相应td
$.trim( $('td:eq('+ index +')', this).text() )
从文字中删除空格
parseInt( $.trim( $('td:eq('+ index +')', this).text() ), 10)
会转换integet的值
sum += parseInt( $.trim( $('td:eq('+ index +')', this).text() ), 10);
执行总和。
<强> DEMO 强>