在createRow事件中追加行

时间:2019-03-04 16:09:44

标签: datatables

使用jquery Datatable,我试图在createdRow事件中添加新行,但未添加。

这里有什么问题吗?

$("test").DataTable({
    "createdRow": function (row, data, dataIndex) {

        $(row).after("<tr><td>test</td></tr>");
    }
});

1 个答案:

答案 0 :(得分:1)

我可以假设在createdRow节点准备好但尚未插入DOM时调用row回调,因此实际上.after()所指的位置是未知的。 / p>

当我试图用某些东西欺骗DataTable时,

createdRow: row => {
    let newRowTemplate = document.createElement('template');
    newRowTemplate.innerHTML = `${row.innerHTML}<tr><td>test</td></tr>`;
    row = newRowTemplate.content.children;
}

我也没有成功,因为DataTable可能会从HTMLCollection中过滤掉firstChild,因此我看不到此回调将2个<tr>节点抛出的方式。

我可能会想到的解决方法是使用row().child(),它将为您提供期望的输出:

createdRow: (row, data, dataIndex) => {
    $('#test').DataTable().row(dataIndex).child('<tr><td>test</td></tr>').show();
}