把下面的totalcount()函数分别加到删除和添加的最后就行了function totalcount() {
var tab=document.getElementById('myTable');
if(tab.rows.length>1) {//没有值时就不计算
var total=0;
for(var r=0;r<tab.rows.length-1;r++) {
total+=parseInt(tab.rows[r].cells[1].innerHTML)*parseInt(tab.rows[r].cells[2].innerHTML);//为了兼容FF所以没使用innerText,不知道还能不能用别的属性来取值
}
tab.rows[tab.rows.length-1].cells[1].innerHTML=total;
}
}

解决方案 »

  1.   


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gbk" />
    <style>
    body{
        margin:0px;
        font-size:12px;
        color:#8f8f8f;
    }
    #menu {
        display:block;
        bottom:2px;
        right:2px;
        width:220px;
        position:fixed;
        border:1px solid #990000;
        padding:2px;
        text-align:center;
        font-weight:bold;
        color:#990000;
        background:#fff;
    }
    * html #menu {
        position:absolute;
    }
    #delete{
        background-image:url('bas_del.gif');
        width:16px;
        height:12px;
        cursor:pointer;
        margin:auto;
    }
    #refer{
        background-image:url('bas_in.gif');
        width:16px;
        height:12px;
        cursor:pointer;
    }
    .Astyle{
        float:left;
        margin:0px 2px;
        width:50px;
        background-color:#000000;
    }
    .both{
        margin:4px 0px 0px 5px;
        float:left;
    }
    </style>
    <script language="javascript">
    function deleteRow(r) {
      var i=r.parentNode.parentNode.rowIndex
      document.getElementById('myTable').deleteRow(i)
      计算()
    }function insRow(x) {
      var Name1 = document.getElementById(x+"1").innerHTML; 
      var Name2 = document.getElementById(x+"2").innerHTML; 
      var Name3 = document.getElementById(x+"3").innerHTML; 
      var x=document.getElementById('myTable').insertRow(0)
      var y=x.insertCell(0)
      var z=x.insertCell(1)
      var m=x.insertCell(2)
      var n=x.insertCell(3)
      y.innerHTML=Name1
      z.innerHTML=Name2
      m.innerHTML=Name3
      n.innerHTML="<div id='delete' onclick='deleteRow(this)'></div>"
      计算()
    }
    function 计算(){
    var tab=document.getElementById('myTable')
    var tr=tab.rows;
    var all=0
    for (var i=0;i<tr.length-1;i++)
    all+=parseInt(tr[i].cells[1].innerHTML)
    tr[i].cells[1].innerHTML=all
    }
    </script>
    </head>
    <body>
    <div id="menu">
    <table border="1" width="100%" cellspacing="0">
    <tr>
        <td width="90">物品</td>
        <td width="40">单价</td>
        <td width="40">数量</td>
        <td>删除</td>
    </tr>
    </table>
    <table id="myTable" border="1" width="100%" cellspacing="0">
    <tr>
        <td width="90">总计</td>
        <td width="40" id="hj">0</td>
        <td width="40">-</td>
        <td>-</td>
    </tr>
    </table>
    </div>
    <div style="background-color:#cccccc;width:960px;height:1000px;margin:auto">
        <div class="both">
            <div id="a1" class="Astyle">物品一</div>
            <div id="a2" class="Astyle">10</div>
            <div id="a3" class="Astyle">1</div>
            <div id="refer" class="Astyle" onclick="insRow('a')"></div>
        </div>
        <div style="clear:both"></div>
        <div class="both">
            <div id="b1" class="Astyle">物品二</div>
            <div id="b2" class="Astyle">20</div>
            <div id="b3" class="Astyle">2</div>
            <div id="refer" class="Astyle" onclick="insRow('b')"></div>
        </div>
    </div>
    </body>
    </denter>
    </body>
    </html>
      

  2.   

    把下面的totalcount()函数加到删除的添加方法之后 就行了function totalcount() {
    var tab=document.getElementById('myTable');
    if(tab.rows.length>1) {//没有值时就不计算
    var total=0;
    for(var r=0;r<tab.rows.length-1;r++) {
    total+=parseInt(tab.rows[r].cells[1].innerHTML)*parseInt(tab.rows[r].cells[2].innerHTML);//为了兼容FF所以没使用innerText,不知道还能不能用别的属性来取值
    }
    tab.rows[tab.rows.length-1].cells[1].innerHTML=total;
    }
    }
      

  3.   


    csdn有问题,竟然出来两遍,