这段代码是做动态生成行后删除行的,
           function modify_for_delete(num){ 
var table = document.getElementById("tb");
var Count = table.rows.length;
var i=num*1
alert("当前的总行数"+Count);
alert("当前选择行"+num);
for(i;i<Count*1;i++){
alert("开始修改行"+i);
var next=i+1;  //下一行行号    
var next_na = "name"+next; //下一行name属性
var next_num  = "num"+next; //下一行num属性
var next_unit = "unit"+next; //下一行unit属性
var next_id   = "id"+next; //下一行id属性
var dex=i
var now_na   ="name"+dex;
var now_num  ="num"+dex;
var now_unit ="unit"+dex;
var now_num  ="id"+dex;
alert(next_na+next_na+next_na+next_na);
//注释 一下四行话出现bug 修改稿
document.getElementById(next_na).value   =now_na;
document.getElementById(next_num).value   =now_num;
document.getElementById(next_unit).value    =now_unit;
document.getElementById(next_id).value   =now_id;
}

   }
现在出现了个问题 如果没有document.getElementById(next_na).value   =now_na;
document.getElementById(next_num).value   =now_num;
document.getElementById(next_unit).value    =now_unit;
document.getElementById(next_id).value   =now_id;
该段代码可以执行预定次数 但是如果有了上面那段只有执行一次 求助。我没什么分希望好心人帮忙 在线等。。

解决方案 »

  1.   

    document.getElementById(next_na)  之类的是否存在?
      

  2.   

    很明显 
    document.getElementById(next_na) is null
    不用四行,就一行也终止
    赋值前判断下
      

  3.   

    很明显  
    document.getElementById(next_na) is null
    不用四行,就一行也终止
    赋值前判断下
    document.getElementById(next_na) is null不是为空
    我在动态生成行时都赋值一个id给他 格式是字符串加行号
      

  4.   

    你在报错前alert一下报错的代码
    比如这个
    document.getElementById(next_na)
      

  5.   

    【我在动态生成行时都赋值一个id给他 格式是字符串加行号】:
    你只在动态生成时给了id,但删除时没注意给未删除的控件id重新赋值。例如:
    生成了三行,id分别是:
    aa0
    aa1
    aa2当你把aa0这行删除后,剩下了两行:
    aa1
    aa2此时,如果你继续添加新行后再删除就容易出问题了。
    所以需要做个循环,将剩下的两行id重新赋值为:
    aa0
    aa1
      

  6.   

    function modify_for_delete(num){ 
    var table = document.getElementById("tb");
    var Count = table.rows.length;
    var i=num*1
    //alert("当前的总行数"+Count);
    //alert("当前选择行"+num);
    alert(Count);
    for(i;i<Count*1;i++){
    alert("开始第"+i+"次赋值");
    var next=i+1;  //下一行行号    
    var next_na = "name"+next; //下一行name属性
    var next_num  = "num"+next; //下一行num属性
    var next_unit = "unit"+next; //下一行unit属性
    var next_id   = "id"+next; //下一行id属性
    var dex=i
    var now_na   ="name"+dex;
    var now_num  ="num"+dex;
    var now_unit ="unit"+dex;
    var now_num  ="id"+dex;
    alert("开始修改行"+i);
    alert(document.getElementById(next_na));
    //alert(next_na+next_na+next_na+next_na);
    //注释 一下四行话出现bug 修改稿
    document.getElementById(next_na).id   =now_na;
    //alert(document.getElementById(next_na));
    document.getElementById(next_num).id  =now_num;
    document.getElementById(next_unit).id    =now_unit;
    //document.getElementById(next_id).id      =now_id;
    }
    重新写下
    现在是如果只执行document.getElementById(next_na).id   =now_na;时是可以实现修改 但是如果同时要对一行中的四个input同时修改就会只执行一次