2013-02-21 2 views
0

Добавьте динамическое число строк каждый раз, когда удаляющие существующие реокс не работают, создается только одна новая строка. Здесь я попытался создать новые 3 строки. Пожалуйста, поймите меня.Удалите из строк таблицу html с помощью javascript

<TABLE id="dataTable" width="350px" border="1">  
</TABLE> 

function addRow(tableID) 
     {  
      var table = document.getElementById(tableID);     
      deleteRow(tableID); 
      for(i=0;i<3;i++) 
      { 
       var rowCount = table.rows.length; 
       var row = table.insertRow(rowCount); 
       var cell0 = row.insertCell(i); 
       var element0 = document.createElement("input"); 
       element0.type = "text"; 
       element0.name = "txtbox[]"; 
       cell0.appendChild(element0); 

       var cell1 = row.insertCell(i+1); 
       var element1 = document.createElement("input"); 
       element1.type = "text"; 
       element1.name = "txtbox[]"; 
       element1.value = tableID+"_"+rowCount+"_newschedule"; 
       cell1.appendChild(element1); 
      }  
     } 

     function deleteRow(tableID) { 
      try 
      { 
       var table = document.getElementById(tableID); 
       var rowCount = table.rows.length;     
       for(i =(rowCount-1);i>=0;i--) 
       { 
        table.deleteRow(i); 
       } 

       } 
      catch(e) 
      {      
      } 
     } 
+1

down-voters, пожалуйста, прокомментируйте, не думайте, что вы гений – sunleo

ответ

1

Попробуйте это

function addRow(tableID) { 
      var table = document.getElementById(tableID); 
      deleteRow(tableID); 
      for (i = 0; i < 3; i++) { 
       var rowCount = table.rows.length; 
       var row = table.insertRow(rowCount); 

       var cell0 = row.insertCell(0); 
       var element0 = document.createElement("input"); 
       element0.type = "text"; 
       element0.name = "txtbox[]"; 
       cell0.appendChild(element0); 

       var cell1 = row.insertCell(1); 
       var element1 = document.createElement("input"); 
       element1.type = "text"; 
       element1.name = "txtbox[]"; 
       element1.value = tableID + "_" + rowCount + "_newschedule"; 

       cell1.appendChild(element1); 
      } 
     } 

Эти две линии были неправы

var cell0 = row.insertCell(i); 
var cell1 = row.insertCell(i+1); 

Поскольку insertCell (я) принимает индекс ячейки (TD), которые будут добавлены в row (TR), но после первой итерации ваш i станет 1, а затем вы попытаетесь вставить ячейку в индекс 1, прежде чем вставлять ячейку в 0, а затем y ou get - ошибка индекса.

+0

спасибо за замечательное руководство. +++++++++ 1 – sunleo

Смежные вопросы