javascript动态删除行只能用一次,请高手给我看看代码怎么改

<scripttype="text/javascript">vari=1functionaddTab(){vartr=document.getElementById("t... <script type="text/javascript">
var i=1

function addTab()
{
var tr=document.getElementById("tab").childNodes[0];
var trnew=document.createElement("tr");
var td1=document.createElement("td");
td1.innerHTML = "<input type=\"checkbox\" id=\"check_"+i+"\">"
var td2 = document.createElement("td");
td2.appendChild(document.createTextNode("王五_"+i));
var td3 = document.createElement("td");
td3.appendChild(document.createTextNode("男"));
var td4 = document.createElement("td");
td4.appendChild(document.createTextNode("30"));
var td5 = document.createElement("td");
td5.appendChild(document.createTextNode("工程师"));
var td6 = document.createElement("td");
td6.innerHTML = ("<a href=\"javascript:deleteRow("+i+")\">删除</a>");
trnew.appendChild(td1);
trnew.appendChild(td2);
trnew.appendChild(td3);
trnew.appendChild(td4);
trnew.appendChild(td5);
trnew.appendChild(td6);
tr.appendChild(trnew);

i++

}
function allcheck()
{

for(var j=1; j<i; j++)
{ document.getElementById("check_"+j).checked = true;
document.getElementById("button1").style.display="none";
document.getElementById("button2").style.display="";

}
}
function delallcheck()
{
for(var j=1; j<i;j++)
{ document.getElementById("check_"+j).checked = false;
document.getElementById("button1").style.display="";
document.getElementById("button2").style.display="none";
}
}
function deleteRow(n)
{

var tab=document.getElementById("tab");
var tr = tab.childNodes[0];
tr.removeChild(tr.childNodes[n]);
i--;
}
function DelPart()
{
for (var j=i-1;j>=1 ;j-- )
{
if( document.getElementById("check_"+j).checked==true )
{

deleteRow(j);
}
}
}
</script>
我是新手积分就这么多了,急需答案.谢谢
展开
 我来答
sanshizi
推荐于2016-02-20 · TA获得超过448个赞
知道小有建树答主
回答量:364
采纳率:0%
帮助的人:321万
展开全部
所有代码都在这儿了,可以直接测试使用:
===================================
<script type="text/javascript">
var i=0;
function addTab(){
var tr=document.getElementById("tab").childNodes[0];
var trnew=document.createElement("tr");
var td1=document.createElement("td");
td1.innerHTML = "<input type=\"checkbox\" id=\"check_"+i+"\">"
var td2 = document.createElement("td");
td2.appendChild(document.createTextNode("王五_"+i));
var td3 = document.createElement("td");
td3.appendChild(document.createTextNode("男"));
var td4 = document.createElement("td");
td4.appendChild(document.createTextNode("30"));
var td5 = document.createElement("td");
td5.appendChild(document.createTextNode("工程师"));
var td6 = document.createElement("td");
td6.innerHTML = ("<a href=\"javascript:deleteRow("+i+")\">删除</a>");
var td7 = document.createElement("td");
td7.innerHTML = ("i="+i);
trnew.appendChild(td1);
trnew.appendChild(td2);
trnew.appendChild(td3);
trnew.appendChild(td4);
trnew.appendChild(td5);
trnew.appendChild(td6);
trnew.appendChild(td7);
tr.appendChild(trnew);
showmsg("addTab: i="+i);//trace
i++ ;
}

function deleteRow(n){
var tab=document.getElementById("tab");
var tr = tab.childNodes[0];
var rowslen=tab.rows.length;//取得目前还剩的行数
showmsg("Try to deleteRow: "+n);//trace
showmsg("rowslen: "+rowslen);//trace
var a=getRealRows(n);
showmsg("getRealRows: "+a);//trace

if(a>-1){
tr.removeChild(tr.childNodes[a]);
}
//i--; //这个删除掉,因为我们需要知道你要删除的行到底是第几行,如果你删除了第n行,那么从第n行以后所有的行号都要减1,是动态变化的,所以这个i必须唯一,你以前的有可能会出现重复的i的情况
}
function getRealRows(n){//得到你要删除的行当前到底是第几行
var tab=document.getElementById("tab");
var rowslen=tab.rows.length;//取得目前表格还剩的行数
var colslen=tab.rows(0).cells.length;
for(var j=0;j<rowslen;j++){
if(tab.rows(j).cells(5).innerHTML.indexOf("deleteRow("+n+")")>-1) return j;
//这里的5是第5列,具体怎么判断根据你自己情况再定,可以调整为其它的
showmsg("tab.rows(0).cells(6).innerHTML: "+tab.rows(j).cells(5).innerHTML);//trace
}
if(n==0) return 0;
return -1;
}

function showmsg(x){document.getElementById("msg").innerHTML+=x+"<hr size=1>"; }
function cls(x){document.getElementById(x).innerHTML=""; }
</script>
<a href="javascript:addTab()">Go</a> | <a href="javascript:cls('msg')">ClsMsg</a>
<table>
<tr>
<td width="400">
<table id="tab" border="1" style="border-collapse:collapse"></table>
</td>
<td>
<div id="msg"></div>
</td>
</tr>
</table>
hsf912
2008-09-09 · 超过16用户采纳过TA的回答
知道答主
回答量:151
采纳率:0%
帮助的人:182万
展开全部
删除后行的序号动态改变了!再动态调用删除函数会出错!只能用对象删除行!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式