不能这样顺序删除的while(i <trs.length)var tr = trs[i]; 当你删除一行  行数会减少   就不存在 trs.length -1行了

解决方案 »

  1.   

    呵呵,不好意思,测试时没删除了,应该是这样的

          var trs = document.getElementById("t").rows;     
          var i = 1;
          alert(trs.length);
          //alert(trs[i].cells[3].tagName);
           while(i<trs.length)
             {       //alert(i+trs[i].cells[3].children[0].value); 
                     alert(trs[i].tagName+i);              
                   var tr = trs[i];
                     alert(tr.cells[3].tagName+i)                 
                  if(tr.cells[3].children[0].value=="峰电价"&&tr.cells[3].children[0].value!=null)
                     {                   
                       document.getElementById("t").deleteRow(i);
                     }            
                  if(tr.cells[3].children[0].value=="平电价"&&tr.cells[3].children[0].value!=null)
                     {
                      document.getElementById("t").deleteRow(i);
                     }
                  if(tr.cells[3].children[0].value=="谷电价"&&tr.cells[3].children[0].value!=null)
                     {
                       document.getElementById("t").deleteRow(i);
                     } 
                     i++;
             }
    删除了一个i++;
    但现在是,一行都删除不了了.
     alert(trs[i].tagName+i);              
     alert(tr.cells[3].tagName+i)  
    第一句弹出的值是:
    tr1
    第二名就没有执行.后面的就不执行了.   弄了一整天了.急啊
      

  2.   


    var trs = document.getElementById("t").rows;      
          var i  = trs.length-1; 
          //alert(trs.length); 
          //alert(trs[i].cells[3].tagName); 
           while( i > 0) 
             {       //alert(i+trs[i].cells[3].children[0].value);  
                   //alert(trs[i].tagName+i);               
                   var tr = trs[i]; 
                  alert(i  + tr.rowIndex) 
                  //   i++; 
                  if(tr.cells[3].children[0].value=="峰"&&tr.cells[3].children[0].value!=null) 
                     {                    
                       document.getElementById("t").deleteRow(i); 
                     }             
                 else  if(tr.cells[3].children[0].value=="平"&&tr.cells[3].children[0].value!=null) 
                     { 
                      document.getElementById("t").deleteRow(i); 
                     } 
                  else if(tr.cells[3].children[0].value=="谷"&&tr.cells[3].children[0].value!=null) 
                     { 
                       document.getElementById("t").deleteRow(i); 
                     }  
          i = i -1; 
    }
    }
      

  3.   

    注意 if else if 的应用 
      

  4.   

    var m = trs.length;
    while(i<m) var tr = trs[i];  
    改成这样也不行啊
      

  5.   

    嗯,谢谢 songpengasp
    可以了.