2009-11-13 11 views

Odpowiedz

32

Jeśli nie chcesz używać jQuery, możesz użyć kilku prostych funkcji, takich jak cloneNode(), createElement() i appendChild(). Oto prosta demonstracja, która dołącza wiersz do końca tabeli przy użyciu metody klonowania lub tworzenia. Testowane w IE8 i FF3.5.

<html> 
 

 
<head> 
 
    <script type="text/javascript"> 
 
    function cloneRow() { 
 
     var row = document.getElementById("rowToClone"); // find row to copy 
 
     var table = document.getElementById("tableToModify"); // find table to append to 
 
     var clone = row.cloneNode(true); // copy children too 
 
     clone.id = "newID"; // change id or other attributes/contents 
 
     table.appendChild(clone); // add new row to end of table 
 
    } 
 

 
    function createRow() { 
 
     var row = document.createElement('tr'); // create row node 
 
     var col = document.createElement('td'); // create column node 
 
     var col2 = document.createElement('td'); // create second column node 
 
     row.appendChild(col); // append first column to row 
 
     row.appendChild(col2); // append second column to row 
 
     col.innerHTML = "qwe"; // put data in first column 
 
     col2.innerHTML = "rty"; // put data in second column 
 
     var table = document.getElementById("tableToModify"); // find table to append to 
 
     table.appendChild(row); // append row to table 
 
    } 
 
    </script> 
 
</head> 
 

 
<body> 
 
    <input type="button" onclick="cloneRow()" value="Clone Row" /> 
 
    <input type="button" onclick="createRow()" value="Create Row" /> 
 
    <table> 
 
    <tbody id="tableToModify"> 
 
     <tr id="rowToClone"> 
 
     <td>foo</td> 
 
     <td>bar</td> 
 
     </tr> 
 
    </tbody> 
 
    </table> 
 
</body> 
 

 
</html>

11

próbowałem wszystkie rodzaje wyszukiwań dziś wykonane wykorzystanie źródeł: http://www.mredkj.com/tutorials/tablebasics3.html i http://www.mredkj.com/tutorials/tableaddcolumn.html

oto wynik mojego badania logiki, to działa teraz

function addRow(id) 
    { var x=document.getElementById(id).tBodies[0]; //get the table 
     var node=t.rows[0].cloneNode(true); //clone the previous node or row 
     x.appendChild(node); //add the node or row to the table 
    } 

    function delRow(id) 
    { var x=document.getElementById(id).tBodies[0]; //get the table 
     x.deleteRow(1); //delete the last row 
    } 

UWAGA 1: mój stół zawierał komórkę, która miała textbox + etykieta w wierszu tabeli (tr).
UWAGA2: z rzędu, gdy było wielu (TD) 's, który miał etykietę + tekstowe

+0

Czy masz w pełni funkcjonujący przykład? –

3

Wiem, że stary wpis, ale czuję się następujący kod może pomóc innych czytelników

$("button").click(function() { 
       $("#DataRow").clone().appendTo("#mainTable"); 
      }); 
Powiązane problemy