jQuery计算表的td内存在的值的平均值

时间:2012-12-17 17:20:33

标签: jquery html jsp

我正在使用googlecharts插件来生成柱形图。

我还希望获得td中存在的值的平均值。是否有可能通过谷歌图表插件或任何人可以帮助我编写ajquery来计算平均值。 计算平均值后,我需要在段落标记中添加类“avg”。 谢谢你的帮助。

我的代码是:

<table id="weather">
                    <thead>
                        <tr>
                            <th></th>
                            <th>Mar</th>
                            <th>Apr</th>
                            <th>May</th>
                            <th>Jun</th>
                            <th>Jul</th>
                            <th>Aug</th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                            <th>Weather</th>
                            <td>20</td>
                            <td>22</td>
                            <td>18</td>
                            <td>24</td>
                            <td>20</td>
                            <td>22</td>
                        </tr>
                    </tbody>
                </table>

和javascript代码:

<script type="text/javascript">
        gvChartInit();
        $(document).ready(function(){
            $('#weather').gvChart({
        chartType: 'ColumnChart',
        gvSettings: {
            width: 100,
            height: 40,
            colors:['gray'],
            hAxis: {textPosition: 'none'},
            vAxis: {minValue: 0, textPosition: 'none', gridlines: {color: '#ffffff'}},
            legend: {position: 'none'}
        }
    });
        </script>

3 个答案:

答案 0 :(得分:2)

尝试这样的事情:

avg = 0, amount = 0;
$('td').each(function(){
    avg += +($(this).text());
    amount++;
});
avg /= amount;
$('.avg').text(avg);

但您可能希望确保它是正确的td,因此您可以将tr的ID设置为'weather',然后将$('td').each()更改为{{1 }}

答案 1 :(得分:1)

您可以使用

var avg=0;

$('#weather td').each({function(){
            avg=avg+parseInt($(this).text());
         });

avg=avg/$('#weather td').length;

var avg=0;
var count=0;
   $('#weather td').each({function(){
                avg=avg+parseInt($(this).text());
                count=count+1;
             });

    avg=avg/count;

后可以在p标签上添加平均值

$('p.avg').html(avg);

答案 2 :(得分:0)

这应该为您返回平均值:

var totalVal = 0,
    iCount = $('#weather').find('td').length;
$('#weather').find('td').each(function(i,val){
    totalVal = totalVal + parseInt($(val).text());
});
alert('Avg = '+totalVal/iCount);