2011-03-10 55 views
0

我已經創建了一個函數,成功地附加行/單元格的表,並從數組中填充它們。問題在於它們被追加到表格的頂部。jQuery我可以使用append/appendTo在這個JavaScript函數

這是因爲行var row = tbody.insertRow(r); ...我認爲/希望。

來看看下面的鏈接功能是appendTable(id)

這裏是工作的例子,追加到頂端:http://jsfiddle.net/JEAkX/4/

我在想這樣的事情會的工作:var row = insertRow(r).appendTo('tbody>tr:last');但它只是打破了功能。

我也嘗試了許多不同的組合.append().appendTo()在同一行上沒有成功。 作爲最後一次努力,我嘗試了cell.innerHTML = "<input type='text' size='1' value='" + subset[i++] + "' />"行的變化,但我相信到那時候位置已經決定。

下面是從例子中提取的功能:

function appendTable(id) 
{ 
    var tbody = document.getElementById(id).getElementsByTagName("tbody")[0]; 
    var i = 0; 
    for (var r = 0; r < 2; r++) { 
     var row = tbody.insertRow(r); 
     for (var c = 0; c < 4; c++) { 
      var cell = row.insertCell(c); 
      cell.innerHTML = "<input type='text' size='1' value='" + subset[i++] + "' />" 
     } 
    } 
} 

在一個側面不是我試圖在一個點(失敗)insertAfter但讀,我將無法使用它的東西,沒在頁面加載時存在。

+0

我創建了一個撥弄工作的例子:http://jsfiddle.net/JEAkX/9/ – 2011-03-10 01:48:01

回答

1

insertRow在指定索引處添加一行。

如果該參數(代碼中的r)爲零,則會將該行添加到表格頂部。 要將它們添加到結束,而應使用表的當前長度爲起點:

function appendTable(id) 
{ 
    var tbody = document.getElementById(id).getElementsByTagName("tbody")[0]; 
    var length = tbody.rows.length; 
    for (var r = length; r < length + 1; r++) { 
     var row = tbody.insertRow(r); 
     // etc. 
    } 
} 
+0

這使得它更容易比我所期待的。謝謝......繼續下一步! – tehaaron 2011-03-10 01:28:53

0

創建該行的字符串,並追加該到TBODY的作品,並從文檔看起來像用於appendTo()。

function appendTable(id) 
{ 
    var tbody = document.getElementById(id).getElementsByTagName("tbody")[0]; 
    var i = 0; 
    for (var r = 0; r < 2; r++) { 
     var row = tbody.insertRow(r); 
     var rowtext = '<tr>'; 
     for (var c = 0; c < 4; c++) { 
      rowtext += '<td><input type="text" size="1" value="x" /></td>'; 
     } 
     rowtext += '</tr>'; 
     $(rowtext).appendTo(tbody); 
    } 
} 
相關問題