本菜鸟在做一个网上下单的东东,已经实现的功能是:可以动态添加行,删除行;自动计算金额。问题是:当我删除一行的时候(假设是要删除第n行),这一行连同后面所有的行都没有了。我就想,能不能在执行删除前把这一行后面所有的行赋给他前面的行,然后再删除最后一行。这样就可以解决问题了。即:tr[n].innerHTML=tr[n+1].innerHTML  (瞎写的,只是为了表达这个意思)
    tr[n+1].innerHTML=tr[n+2].innerHTML
    .......
    deleteRow(table.rows.length-1)我不知道这样可不可以,现在的问题是怎么实现tr[n].innerHTML=tr[n+1].innerHTML   先谢谢各位大虾们了
这个问题有没有其他更好的解决办法?

解决方案 »

  1.   

    记得ie中td的innerHTML是只读的吧。inserRow()和insertCell()deleteRow()和deleteCell()用上面的函数来添加或者是删除行及单元格
      

  2.   

    可以删除中间某行不影响后面啊。你把下面的保存试试就可以了。
    <script language="javascript">
    function del_tr(e){
    var n=e.parentNode.parentNode.rowIndex;
    var tle=document.getElementById("test");
    tle.deleteRow(n);
    }
    </script>
    <table width="372" border="1" id="test">
      <tr>
        <td width="271">1</td>
        <td width="85"><div align="center" onclick="del_tr(this)">移除</div></td>
      </tr>
      <tr>
        <td>2</td>
        <td><div align="center" onclick="del_tr(this)">移除</div></td>
      </tr>
      <tr>
        <td>3</td>
        <td><div align="center" onclick="del_tr(this)">移除</div></td>
      </tr>
      <tr>
        <td>4</td>
        <td><div align="center" onclick="del_tr(this)">移除</div></td>
      </tr>
      <tr>
        <td>5</td>
        <td><div align="center" onclick="del_tr(this)">移除</div></td>
      </tr>
    </table>
      

  3.   


      function deleteRow()  //删除指定的一行控件
     {
           var i = event.srcElement.parentElement.parentElement.rowIndex;
           var tableOp = document.getElementById("table ID");
           tableOp.deleteRow(i);
      }
    我是每行都动态加了一个删除
      

  4.   

    最后结贴:
    window.onload = function(){
    var it = document.getElementById("tab1");
    it.ondblclick =function delRow(e)              //======动态删除行 支持Firefox,IE=======
    { var e = window.event||e,target= e.srcElement||e.target; while (target.tagName.toLowerCase() != "tr") {target = target.parentNode; }
       
    var i = target.rowIndex;
      
    if (target.tagName.toLowerCase()=="tr"&&i>1 && i!=it.rows.length-1) {it.deleteRow(i);calculate();} 
       

    }
    谢谢大虾们;)