使用jquery Datatable,我试图在createdRow事件中添加新行,但未添加。
这里有什么问题吗?
$("test").DataTable({
"createdRow": function (row, data, dataIndex) {
$(row).after("<tr><td>test</td></tr>");
}
});
答案 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();
}