添加行和删除行都可以实现,但是 上移和下移后 再删除行 时候 行的号就不对了。下面的是删除行的方法//删除行
function delTableRow(rowNum)


/*if (table1.rows.length>rowNum)

table1.deleteRow(rowNum);
}*/
//表格行数
var tableRowNum=table1.rows.length;
var rowUp;//上一行临时对象
var rowDn;//下一行临时对象(要移动行)
//更改被删除行位置下的所有行标识(文本框名称)
for(;rowNum<tableRowNum;rowNum++)
{
var newRowNum=parseInt(rowNum,10)+1;//下一行,行号
table1.rows[rowNum].id="row_"+rowNum;
for (var i=0;i<7;i++)//每行的7列数据 
{
switch (i) 

case 0 : //类型
rowUp=eval("div_"+rowNum);
rowDn=eval("div_"+newRowNum);
rowUp.innerHTML=rowDn.innerHTML;
rowUp=eval("document.form1.type"+rowNum);
rowDn=eval("document.form1.type"+newRowNum);
rowUp.value=rowDn.value;
break; 
case 1 ://内容
rowUp=eval("document.form1.input"+rowNum);
rowDn=eval("document.form1.input"+newRowNum);
rowUp.value=rowDn.value;
break;
case 2 ://时间
rowUp=eval("document.form1.time"+rowNum);
rowDn=eval("document.form1.time"+newRowNum);
rowUp.value=rowDn.value;
break;
case 3 ://大小
rowUp=eval("document.form1.size"+rowNum);
rowDn=eval("document.form1.size"+newRowNum);
rowUp.value=rowDn.value;
break;
case 4 : //上移
table1.rows[rowNum].cells[i].innerHTML="<a href='javascript:upTableRow(\""+rowNum+"\")'>上移</a>";
break;
case 5 : //下移
table1.rows[rowNum].cells[i].innerHTML="<a href='javascript:nextTableRow(\""+rowNum+"\")'>下移</a>";
break;
case 6 : //删除
table1.rows[rowNum].cells[i].innerHTML="<a href='javascript:delTableRow(\""+rowNum+"\")'>删除</a>";
break;
}
}
tableRowNum=table1.rows.length-1;

//alert(document.getElementById("table1").innerHTML);
}
if(table1.rows.length-1>1)
{
table1.deleteRow(rowNum-1);
}
else
alert("最后一个不允许删除");
}

解决方案 »

  1.   

    不知道为什么要弄得这么麻烦, 移动行, table 不是一有一个“moveRow(iSource, iTarget)”的方法么
      

  2.   

    请问  5 楼的 moveRow(iSource, iTarget) 这个方法可以同时改变行的ID和属性的name以及单元格的内容?没用过着个方法?
      

  3.   

    谢谢 各位了 搞定了 是这句的问题 table1.deleteRow(rowNum-1); 删除最后一行的时候有问题