没有时间改,给你几个建议吧
1.数据与样式分离.javascript用于创建表格,样式用css来渲染
2.添加行时,给td中的对象起用相同的名字,可以减少很多错误来源
3.删除行时,得到该行的引用,如:curTr,然后在tbody中appendChild(curTr);这时该被移到rows的最后,你只管删除最后一个就行了.或者,创建一个fragment对象,把该对象放到fragment对象里,将直接从rows中消失.var fm = document.createFragment(); fm.appendChild(curTr);再或者,就直接用deleteRow方法,这最简捷.
4.相同的字符串用变量来定义,然后引用,不要到处都写相同的代码.能用循环的要用循环,循环中的微弱不同可以用数组或者对象等技术解决.
5.添加行时,可以检查是否有已经添加好的行,如果有,tr.cloneNode(true);再清除几个textarea中的数据,操作量要小很多.其实改进的方法很多,你为什么要选择一个那么麻烦的方法呢?
1.数据与样式分离.javascript用于创建表格,样式用css来渲染
2.添加行时,给td中的对象起用相同的名字,可以减少很多错误来源
3.删除行时,得到该行的引用,如:curTr,然后在tbody中appendChild(curTr);这时该被移到rows的最后,你只管删除最后一个就行了.或者,创建一个fragment对象,把该对象放到fragment对象里,将直接从rows中消失.var fm = document.createFragment(); fm.appendChild(curTr);再或者,就直接用deleteRow方法,这最简捷.
4.相同的字符串用变量来定义,然后引用,不要到处都写相同的代码.能用循环的要用循环,循环中的微弱不同可以用数组或者对象等技术解决.
5.添加行时,可以检查是否有已经添加好的行,如果有,tr.cloneNode(true);再清除几个textarea中的数据,操作量要小很多.其实改进的方法很多,你为什么要选择一个那么麻烦的方法呢?
比如id=1,2,3,4,5,6,我删除id=2不仅要删除2这行,还要把id=3,4,5,6变成id=2,3,4,5
就是在移动id的时候出了问题.,但是行还是可以删除.to zhaoxiaoyang(梅雪香@深圳)
1.数据与样式分离.javascript用于创建表格,样式用css来渲染
是什么意思你是说象,td.innerHTML="<textarea id=f1_"+xh+"_3 name=f1_"+xh+"_3 cols=31 rows=5 class=textarea1></textarea>";
这句吗?
那我的数据要写在什么地方,给这个方法获得呢呢
//增加行数
// tbodyid:tbody的id,
// trid:行id,
// array:td里面的内容数组
function addRow(tbodyid,trid,array)
{
var table = document.getElementById(tbodyid);
var r = newTR();
table.appendChild(r);
for(var i=0;i<array.length;i++)
{
if(array[i]==null)
array[i]="";
d = newTD(array[i]);
r.appendChild( d );
}
paixu(table,trid);
} //返回一个新的行
function newTR()
{
return document.createElement('TR');
} //返回一个新的列
function newTD(content)
{
d = document.createElement('TD');
d.innerHTML=content;
return d;
}
///删除一行
// tbodyid:tbody的id,
// trid:行id,
//object:当前调用这个方法的对象
function delRow(tbodyid,trid,object)
{
table = document.getElementById(tbodyid);
table.removeChild( object.parentNode.parentNode );
paixu(table,trid);
}
////增加或者删除行后重新排序
function paixu(table,trid)
{
trnum = table.rows.length;
if(trnum==0) return;
tdnum = table.rows[0].cells.length;
for(var i=0;i < trnum ;i++)
{
table.rows[i].id = trid+"_"+(i+1);
for(var j = 0 ; j < tdnum ; j++)
{
table.rows[i].cells[j].id = table.rows[i].id+"_"+(j+1);
}
}
}