首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

求表格每行的平均数!解决办法

2012-02-23 
求表格每行的平均数!!有下面这样一个表格,1至12月。每个地区的月份可能会有值。要求:每行数字相加后除每行的

求表格每行的平均数!!
有下面这样一个表格,1至12月。每个地区的月份可能会有值。要求:每行数字相加后除每行的列数。如何写?
<table   border= "1 ">
    <tr>
        <td> 名称 </td>
        <td> 1月 </td>
        <td> 2月 </td>
        <td> 3月 </td>
        <td> 4月 </td>
        <td> 5月 </td>
        <td> ... </td>
        <td> 12月 </td>
        <td> 平均分 </td>
    </tr>
    <tr>
        <td> 长春 </td>
        <td> &nbsp; </td>
        <td> 50 </td>
        <td> &nbsp; </td>
        <td> 30.9 </td>
        <td> &nbsp; </td>
        <td> &nbsp; </td>
        <td> 80 </td>
        <td> &nbsp; </td>
    </tr>
    <tr>
        <td> 吉林 </td>
        <td> 40 </td>
        <td> &nbsp; </td>
        <td> 77 </td>
        <td> 70 </td>
        <td> &nbsp; </td>
        <td> &nbsp; </td>
        <td> 70 </td>
        <td> &nbsp; </td>
    </tr>
    <tr>
        <td> 延吉 </td>
        <td> 70 </td>
        <td> &nbsp; </td>
        <td> 70 </td>
        <td> &nbsp; </td>
        <td> &nbsp; </td>
        <td> 70 </td>
        <td> &nbsp; </td>
        <td> &nbsp; </td>
    </tr>
    <tr>
        <td> 松原 </td>
        <td> 70 </td>
        <td> &nbsp; </td>
        <td> 70 </td>
        <td> 70 </td>
        <td> 70 </td>
        <td> &nbsp; </td>
        <td> &nbsp; </td>
        <td> &nbsp; </td>
    </tr>
</table>

[解决办法]
<script>
var tableobj=document.getElementById( "tableid "); '注意tableid改成你的表格的id
for(i=1;i <tableobj.rows.length;i++)
{ result=0;
row=tableobj.rows[i];
for(r=1;r <row.cells.length;r++)
{
if(!isNaN(parseFloat(row.cells[r].innerText)))


{
//alert(row.cells[r].innerText);
result+=parseFloat(row.cells[r].innerText);
}
}
row.cells[row.cells.length-1].innerText=result/row.cells.length-2;
}
</script>
[解决办法]
有点小错误
row.cells[row.cells.length-1].innerText=result/row.cells.length-2;
请改成
row.cells[row.cells.length-1].innerText=result/(row.cells.length-2);


[解决办法]
function sum(tableId) {
var cols = 0;
var rowTs = 0;
for (var i = 1; i < tableId.rows.length; i++) {
for (var j = 1; j < 13; j++) {
if (!isNaN(tableId.rows(i).cells(j).innerHTML)) {
rowTs += parseFloat(tableId.rows(i).cells(j).innerHTML);
cols++;
}
}
tableId.rows(i).cells(j).innerHTML = rowTs/cols;
cols = 0;
rowTs = 0;
}
}
sum(t);

热点排行