我有一段代码,是javascrip对表格每一行自动求和的,但我想时实反映求和的结果,写如表格的最右一列。我该如何写
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>Untitled Document</title>
</head><body>
<table width="200" border="1" id="tbl">
<tr onclick="test()">
<td>1</td>
<td>2</td>
<td>3</td>
    <td>4</td>
</tr>
<tr id="t">
<td>4</td>
<td>5</td>
<td>6</td>
    <td>33</td>
</tr>
<tr>
<td>7</td>
<td>8</td>
<td>9</td>
    <td>2</td>
</tr>
</table>
<button onclick="sum(tbl,0)">第一行</button>
<button onclick="sum(tbl,1)">第二行</button>
<button onclick="sum(tbl,2)">第三行</button>
</body>
</html>
<script>
function sum(tableName,row)
{
var a=0;
for(i=0;i<tbl.rows(1).cells.length;i++)
{
a+=parseInt(tableName.rows(row).cells(i).innerText);
}
alert(a);
}
//sum(tbl,1);
</script>
对于每一列又该如何写呢,请高手一定要帮忙呀

解决方案 »

  1.   

    不是高手,咱也会
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>Untitled Document</title>
    </head><body >
    <table width="200" border="1" id="tbl">
    <tr onclick="test()">
    <td>1</td>
    <td>2</td>
    <td>3</td>
        <td>4</td>
    </tr>
    <tr id="t">
    <td>4</td>
    <td>5</td>
    <td>6</td>
        <td>33</td>
    </tr>
    <tr>
    <td>7</td>
    <td>8</td>
    <td>9</td>
        <td>2</td>
    </tr>
    </table>
    <button onclick="sum(tbl,0)">1</button>
    <button onclick="sum(tbl,1)">2</button>
    <button onclick="sum(tbl,2)">3</button>
    <br>
    <button onclick="sumColumn(tbl,0)">1</button>
    <button onclick="sumColumn(tbl,1)">2</button>
    <button onclick="sumColumn(tbl,2)">3</button>
    <button onclick="sumColumn(tbl,3)">4</button>
    </body>
    </html>
    <script>
    function sum(tableName,row)
    {
    var a=0;
    for(i=0;i<tbl.rows(1).cells.length;i++)
    {
    a+=parseInt(tableName.rows(row).cells(i).innerText);
    }
    alert(a);
    }
    //sum(tbl,1);
    function sumColumn(tableName,column){
    var a=0;
    //获得总列数
    var elmRows=tableName.rows; //alert(elmRows.length);
             //取所有列的第column个单元格
    for(i=0;i<elmRows.length;i++){ a+=parseInt(tableName.rows(i).cells(column).innerText);
    }
    alert(a);
    }
    </script>
      

  2.   

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>Untitled Document</title>
    </head><body >
    <table width="200" border="1" id="tbl">
      <tr>
        <td>a</td>
        <td>b</td>
        <td>c</td>
        <td>d</td>
        <td>sum</td>
      </tr>
    <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
      <td>4</td>
      <td></td>
    </tr>
    <tr>
    <td>4</td>
    <td>5</td>
    <td>6</td>
      <td>33</td>
      <td></td>
    </tr>
    <tr>
    <td>7</td>
    <td>8</td>
    <td>9</td>
      <td>2</td>
      <td></td>
    </tr>
    </table><script>
    var myTable = document.getElementById('tbl');var myLength = myTable.rows.length;for(var i=1 ; i< myLength; i++)
    {
        var objRow = myTable.rows[i];
        
        var cellLength = objRow.cells.length;
        
        var sum = 0;
        
        for(var j=0;j<cellLength-1;j++)
        {
        
            sum += parseInt(objRow.cells[j].innerText);
            
        
        }
        
        
        objRow.cells[cellLength-1].innerText = sum+"1";
    }</script>
      

  3.   

    上面javascript中最后一行有错,
    应该是
    objRow.cells[cellLength-1].innerText = sum;忘记去掉了。对于求列的sum,类似实现
      

  4.   

    你把<script>写到table的后面不就行了,页面加载自动执行js
      

  5.   

    给表的每一个格都添加一个 onchange="js方法"这个js方法就负责完成一行内数据相加并写入最右的格子中