参照网上例子写了个js动态控制表格,但总是连续删除 三次就报错,求各位大侠指教。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>动态给表格增加/删除一行</title>
</head>
<script language=javascript>
allCount=1
function addline()
{
newRow=listtable.insertRow(listtable.rows.length);
newRow.ln=allCount;
newRow.id=allCount;
c1=newRow.insertCell(0);
c1.bgColor="#FFFFFF";
c1.innerHTML=allCount;
c2=newRow.insertCell(1);
c2.bgColor="#FFFFFF";
c2.innerHTML="<input size=20 name=TxtDubanItem"+allCount+"99 id=TxtDubanItem"+allCount+"99 value="+"TxtDubanItem"+allCount+">";
c3=newRow.insertCell(2);
c3.bgColor="#FFFFFF";
c3.innerHTML="<input size=10 name=TxtDutyUserID"+allCount+"99 id=TxtDutyUserID"+allCount+"99>";
c4=newRow.insertCell(3);
c4.bgColor="#FFFFFF";
c4.innerHTML="<input size=10 name=TxtAssistUserID"+allCount+"99 id=TxtAssistUserID"+allCount+"99>";
c5=newRow.insertCell(4);
c5.bgColor="#FFFFFF";
c5.innerHTML="<input size=10 name=TxtFinDay"+allCount+"99 id=TxtFinDay"+allCount+"99> value="+allCount+" ";
c6=newRow.insertCell(5);
c6.bgColor="#FFFFFF";
c6.align="CENTER";
c6.id="line"+allCount;
c6.innerHTML="<input type=button value=删除 onclick=delline(line"+allCount+")>";
allCount++;
}function delline(lineid)
{
var k=0;
for(i=1;i<listtable.rows.length;i++)
{
if(listtable.rows[i].cells[5].id==lineid.id)
{
allCount--;
listtable.deleteRow(i);
k=i;
break;
}
}
for(i=k;i<listtable.rows.length;i++)
{ var j=i+1;
alert(i);
listtable.rows[i].id=i;
listtable.rows[i].cells[0].innerHTML=i;
alert("TxtDubanItem"+j+"99");
alert("TxtDubanItem"+i+"99");
document.getElementById("TxtDubanItem"+j+"99").id="TxtDubanItem"+i+"99"; // document.getElementsByName("TxtDubanItem"+j+"99")[0].name="TxtDubanItem"+i+"99";
document.getElementById("TxtDutyUserID"+j+"99").id="TxtDutyUserID"+i+"99";
// document.getElementsByName("TxtDutyUserID"+j+"99")[0].name="TxtDutyUserID"+i+"99";
document.getElementById("TxtAssistUserID"+j+"99").id="TxtAssistUserID"+i+"99";
// document.getElementsByName("TxtAssistUserID"+j+"99")[0].name="TxtAssistUserID"+i+"99";
document.getElementById("TxtFinDay"+j+"99").id="TxtFinDay"+i+"99";
// document.getElementsByName("TxtFinDay"+j+"99")[0].name="TxtFinDay"+i+"99";
listtable.rows[i].cells[5].innerHTML="<input type=button value=删除 onclick=delline(line"+i+")>";
listtable.rows[i].cells[5].id="line"+i;
}
return;
}
function show()
{
for(i=1;i<=listtable.rows.length;i++)
{
var s=document.getElementsById("TxtDubanItem"+i+"99").value;
alert(s)
}
}
</script><body>
<table width=700 height="20" border="0" align="center" cellpadding=0 cellspacing=0 id=listtable>
<tr align=center height=20>
<td bgcolor=#FFFFFF><b>序号</b></td>
<td bgcolor=#FFFFFF><b>督办事项</b></td>
<td bgcolor=#FFFFFF><b>主办人</b></td>
<td bgcolor=#FFFFFF><b>协办人</b></td>
<td bgcolor=#FFFFFF><b>完成时限</b></td>
<td bgcolor=#FFFFFF><b></b></td>
</tr>
</table>
<table width="700" height="25" border="0" align="center" cellpadding="0" cellspacing="0">
<tr><td align="center"><input type=button value=增加一行 onclick=addline()> <input type=button value=显示 onclick=show()></td>
</tr>
</table>
</body>
</html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>动态给表格增加/删除一行</title>
</head>
<script language=javascript>
allCount=1
function addline()
{
newRow=listtable.insertRow(listtable.rows.length);
newRow.ln=allCount;
newRow.id=allCount;
c1=newRow.insertCell(0);
c1.bgColor="#FFFFFF";
c1.innerHTML=allCount;
c2=newRow.insertCell(1);
c2.bgColor="#FFFFFF";
c2.innerHTML="<input size=20 name=TxtDubanItem"+allCount+"99 id=TxtDubanItem"+allCount+"99 value="+"TxtDubanItem"+allCount+">";
c3=newRow.insertCell(2);
c3.bgColor="#FFFFFF";
c3.innerHTML="<input size=10 name=TxtDutyUserID"+allCount+"99 id=TxtDutyUserID"+allCount+"99>";
c4=newRow.insertCell(3);
c4.bgColor="#FFFFFF";
c4.innerHTML="<input size=10 name=TxtAssistUserID"+allCount+"99 id=TxtAssistUserID"+allCount+"99>";
c5=newRow.insertCell(4);
c5.bgColor="#FFFFFF";
c5.innerHTML="<input size=10 name=TxtFinDay"+allCount+"99 id=TxtFinDay"+allCount+"99> value="+allCount+" ";
c6=newRow.insertCell(5);
c6.bgColor="#FFFFFF";
c6.align="CENTER";
c6.id="line"+allCount;
c6.innerHTML="<input type=button value=删除 onclick=delline(line"+allCount+")>";
allCount++;
}function delline(lineid)
{
var k=0;
for(i=1;i<listtable.rows.length;i++)
{
if(listtable.rows[i].cells[5].id==lineid.id)
{
allCount--;
listtable.deleteRow(i);
k=i;
break;
}
}
for(i=k;i<listtable.rows.length;i++)
{ var j=i+1;
alert(i);
listtable.rows[i].id=i;
listtable.rows[i].cells[0].innerHTML=i;
alert("TxtDubanItem"+j+"99");
alert("TxtDubanItem"+i+"99");
document.getElementById("TxtDubanItem"+j+"99").id="TxtDubanItem"+i+"99"; // document.getElementsByName("TxtDubanItem"+j+"99")[0].name="TxtDubanItem"+i+"99";
document.getElementById("TxtDutyUserID"+j+"99").id="TxtDutyUserID"+i+"99";
// document.getElementsByName("TxtDutyUserID"+j+"99")[0].name="TxtDutyUserID"+i+"99";
document.getElementById("TxtAssistUserID"+j+"99").id="TxtAssistUserID"+i+"99";
// document.getElementsByName("TxtAssistUserID"+j+"99")[0].name="TxtAssistUserID"+i+"99";
document.getElementById("TxtFinDay"+j+"99").id="TxtFinDay"+i+"99";
// document.getElementsByName("TxtFinDay"+j+"99")[0].name="TxtFinDay"+i+"99";
listtable.rows[i].cells[5].innerHTML="<input type=button value=删除 onclick=delline(line"+i+")>";
listtable.rows[i].cells[5].id="line"+i;
}
return;
}
function show()
{
for(i=1;i<=listtable.rows.length;i++)
{
var s=document.getElementsById("TxtDubanItem"+i+"99").value;
alert(s)
}
}
</script><body>
<table width=700 height="20" border="0" align="center" cellpadding=0 cellspacing=0 id=listtable>
<tr align=center height=20>
<td bgcolor=#FFFFFF><b>序号</b></td>
<td bgcolor=#FFFFFF><b>督办事项</b></td>
<td bgcolor=#FFFFFF><b>主办人</b></td>
<td bgcolor=#FFFFFF><b>协办人</b></td>
<td bgcolor=#FFFFFF><b>完成时限</b></td>
<td bgcolor=#FFFFFF><b></b></td>
</tr>
</table>
<table width="700" height="25" border="0" align="center" cellpadding="0" cellspacing="0">
<tr><td align="center"><input type=button value=增加一行 onclick=addline()> <input type=button value=显示 onclick=show()></td>
</tr>
</table>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>测试</title>
<script type="text/javascript" src="My97DatePicker/WdatePicker.js"></script>
<script type="text/javascript">//添加类型
function addType(type){
if(type=='reg'){
var arr=new Array();
arr=document.getElementsByName("regname");//表格中已经有几个涉及到的法律法规对象
if(arr.length>0){
createregType(arr.length);//开始创建
}
}
}
//删除所选类型
function deleType(type){
if(type=='reg'){
var regtables = document.getElementById("regtables");
var checkboxs = document.getElementsByName("checkboxs");
var tr = regtables.getElementsByTagName("tr");
for (var i=0; i<checkboxs.length; i++) {
if(tr.length==3){
checkboxs[i].checked == false;
return false;
}
if(checkboxs[i].checked==true){
removeTrCh(checkboxs[i],type);
i=-1;
}
}
}
}
//删除表格
function removeTrCh(obj,type) {
if(type=='reg'){
var regtables = document.getElementById("regtables");
var str = obj.parentNode.parentNode;//得到要删除第一行对象
regtables.deleteRow(str.rowIndex+1);//根据行索引删除后两行
regtables.deleteRow(str.rowIndex+1);
str.parentNode.removeChild(str);//删除第一行
}
}//创建类型
function createregType(id){
var tbodys = document.getElementById("regtodys");//得到regtbody对象var regname = tbodys.getElementsByTagName("tr")[0];//得到法律名称对象
var regother = tbodys.getElementsByTagName("tr")[1];//得到分类、时间、单位
var regcontent = tbodys.getElementsByTagName("tr")[2];//得到法律正文对象var newRegname=regname.cloneNode(true);//复制法律名称对象
newRegname.getElementsByTagName("input")[1].id="regname"+id;//设置新的法律名称对象id
newRegname.getElementsByTagName("input")[1].value="";//清空数据
var newRegother=regother.cloneNode(true);//复制法律分类、时间、单位
newRegother.getElementsByTagName("select")[0].id="regtype"+id;//设置新的法律类型对象id
newRegother.getElementsByTagName("input")[0].id="regtime"+id;//设置新的法律类型对象id
newRegother.getElementsByTagName("input")[0].value="";//清空数据
newRegother.getElementsByTagName("input")[1].id="regaddress"+id;//设置新的法律单位对象id
newRegother.getElementsByTagName("input")[1].value="";//清空数据var newRegcontent=regcontent.cloneNode(true);//复制法律正文对象
newRegcontent.getElementsByTagName("textarea")[0].id="regcontent"+id;//设置新的法律正文对象id
newRegcontent.getElementsByTagName("textarea")[0].value="";//清空数据tbodys.appendChild(newRegname);//把法律名称添加到表格对象中
tbodys.appendChild(newRegother);//把法律类型、时间、单位添加到表格对象中
tbodys.appendChild(newRegcontent);//把法律正文添加到表格对象中
}
</script>
</head>
<body>
<table class="commonTable" width="100%" cellspacing="0"
cellpadding="0" border="0" id="textareas">
<tr>
<td colspan="100%">
<fieldset>
<legend>
<span><b>涉及到的法律法规</b></span>
<span>
<input type="button" value="添 加" onclick="addType('reg');"/> <input type="button" value="删 除" onclick="deleType('reg');"/></span>
</legend>
<table width="100%" id="regtables" border="1">
<tbody id="regtodys">
<tr>
<td style="width:2%" rowspan="3"><input type="checkbox" name="checkboxs"/></td>
<td style="width:6%"><div align="right">法律名称:</div></td>
<td colspan="5"><input type="text" name="regname" value="" id="regname" style="width:100%"/></td>
</tr>
<tr>
<td style="width:6%"><div align="right">分类:</div></td>
<td width="22%"><select name="regtype" id="regtype" style="width:100%">
<option value="1">1</option>
</select></td>
<td style="width:6%"><div align="right">颁布时间:</div></td>
<td width="22%"><input type="text" name="regtime" value="" id="regtime" style="width:100%" class="Wdate" onFocus="choseDate(this);"/>
</td>
<td style="width:6%"><div align="right">颁布单位:</div></td>
<td width="22%"><input type="text" name="regaddress" value="" id="regaddress" style="width:100%"/></td>
</tr>
<tr>
<td style="width:6%"><div align="right">正文:</div></td>
<td colspan="5"><textarea rows="" cols="" name="regcontent" id="regcontent" style="width:100%" ></textarea></td>
</tr>
</tbody>
</table>
</fieldset>
</td>
</tr>
</table>
</body>
</html>我以前写的、你可能需要改动一下。