0

假设我有一张这样的桌子:

<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 中。结果应该是这样的图片:

在此处输入图像描述

请注意,我使用搜索框过滤表格中的结果,并且每次用户搜索时行数都会改变。

4

2 回答 2

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));

工作样本

笔记

+$('td:eq(0)', this).text(),这里开始+唱将文本转换为数字。

于 2012-08-31T09:34:47.107 回答
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));
});

工作演示。

于 2012-08-31T09:38:58.050 回答