jQuery我可以在这个javascript函数中使用append / appendTo

时间:2011-03-10 00:58:15

标签: javascript jquery html-table append

我创建了一个函数,该函数成功地附加了一个包含行/单元格的表,并从数组中填充它们。问题是它们被附加到表格的顶部。

这是因为行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,但是读到我无法在页面加载时不存在的东西上使用它。

2 个答案:

答案 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);
    }
}