假设我有一张这样的表:
<table cellpadding="0" cellspacing="0" border="0" class="display" id="selection">
<th>Values</th>
<th>Average</th>
<tbody>
<tr>
<td>5</td>
<td></td>
</tr>
<tr>
<td>0.9</td>
<td></td>
</tr>
<tr>
<td>2</td>
<td></td>
</tr>
<tr>
<td>6</td>
<td></td>
</tr>
</tbody>
</table>
我想计算列“值”的平均值,并使用Jquery将其放在平均列的每个td中。结果应该像这张图片:
请注意,我使用搜索框过滤表格中的结果,每次用户搜索时行数都会发生变化。
答案 0 :(得分:3)
var sum = 0,
count = -1,
all = $('#selection > tbody > tr');
all.each(function() {
sum += +$('td:eq(0)', this).text();
count++;
});
all.find('td:eq(1)').text((sum / count).toFixed(3));
的 Working sample 强> 的
+$('td:eq(0)', this).text()
,此处开头+
将文本转换为数字。
答案 1 :(得分:1)
var sum = 0, rows = $('#selection tbody tr');
rows.each(function() {
sum += parseFloat($(this).children('td').eq(0).text());
});
rows.each(function() {
var tds = $(this).children('td'), value = parseFloat(tds.eq(0).text());
$(this).children('td').eq(1).text((value/sum).toFixed(3));
});
的 The working demo. 强> 的