2011-09-02 62 views
0

我正在通过JavaScript创建一个动态表。行和列从用户和创建表。当用户进入第二次我删除所有目前的行和创建新的行。一切工作正常,但删除时,当我使用注释的代码,它不工作,而其他人工作正常。可以有人告诉我这是什么原因?动态表行删除问题

//删除已有的行: -

for(k=tblObj.rows.length;k>0;k--) 
tblObj.deleteRow(k-1); 

上面的逻辑是工作的罚款,但下面一个没有工作,为什么???

  /*for(k=0;k<Number(tblObj.rows.length);k++) 
       { 
        tblObj.deleteRow(k); 
       }*/ //This Logic is not working:Why??? 
+0

*这个逻辑是不工作*:你得到一个错误信息? – Nivas

+0

你介意使用jQuery吗? [Flexgrid](http://www.flexigrid.info)是创建优秀表格的好工具。 – Nivas

+0

即使我删除Number()也存在问题 – Pranav

回答

4

tblObj.rows.length值是针对每个循环执行计算的,并且该数组每次都变短。

尝试用

var len = tblObj.rows.length; 
for(k=0;k<len;k++) 
{ 
    tblObj.deleteRow(0); 
} 
+1

这段代码将删除行后 –

+0

半计数后,将失败,我想现在没关系:) –

+0

哦,我的上帝.. Thanx很多.. – Pranav

4

如果你从一开始就删除行,你必须删除第一行rowCount时间:

var rowCount = tblObj.rows.length; 
for(k=0;k<rowCount;k++) 
{ 
    tblObj.deleteRow(0); 
} 
+0

:-Thanx很多.. – Pranav