2011-03-10 35 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); 
    } 
} 
相关问题