我创建了一个函数,该函数成功地附加了一个包含行/单元格的表,并从数组中填充它们。问题是它们被附加到表格的顶部。
这是因为行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++] + "' />"
}
}
}
在一方面,我没有尝试过({1}} insertAfter
,但是读到我无法在页面加载时不存在的东西上使用它。
答案 0 :(得分: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.
}
}
答案 1 :(得分: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);
}
}