无法阅读属性' childNodes'附加到表时为null

时间:2013-06-25 18:48:45

标签: jquery html-table append

我想这将是一个非常明显的答案我会得到但我自己找不到它。

这是我的桌子(我饶了你所有的tds)

<table id="COA_Table">
    <thead>
        <tr>some th</tr>
    </thead>
    <tbody>
        <tr>some TD</tr>
    </tbody>
</table>

这是我的jQuery代码:

$(document).ready(function () {
    console.log("ready!");

    $('#COA_Table > tbody:last').append('<tr><td><input type=\"checkbox\"></td><td></td>New account<td></td><td></td></tr>');
})

并完成,我得到的错误代码:

  

未捕获的TypeError:无法读取null

的属性'childNodes'
这让我发疯了

3 个答案:

答案 0 :(得分:8)

请注意,您的结构中存在错误

<td></td>New account<td></td>

此文本未放置在任何位置,可能导​​致完整代码中的错误。

应该是

<td></td><td>New account</td>

Demo With These Edits

答案 1 :(得分:2)

为避免标记无效的问题,我将使用以下语法:

$(document).ready(function () {
    var tr  = $('<tr />'),
        td  = $('<td />'),
        td2 = $('<td />', {text: 'New account'}),
        inp = $('<input />', {type:'checkbox'});

    $('#COA_Table tbody').append( tr.append( td.append(inp), td2 ) );
});

将使用开始和结束标记创建每个元素,并将它们附加到适当的位置。

FIDDLE

答案 2 :(得分:0)

使用tr

在最后tbody之后追加数据,而不追加after()
 $('#COA_Table tr:last').after('<tr><td><input type=\"checkbox\"></td><td></td>New account<td></td><td></td></tr>');