我有一个表格,我将复选框作为第一列,这样我就可以选择并删除我想要的所有行。
要选择行,我使用复选框单击事件来记录选定的cId(不是数据表行id)并存储在数组中。
我有一个删除按钮来删除所有选定的行。我在click事件中使用以下代码来删除所选行。
$.each(selectedChks, function (index, cId){
checkbox = $("#chk-"+cId);
target_row=$(checkbox).closest("tr")[0];
oDataTable.fnDeleteRow(target_row, null, false);
});
oDataTable.fnDraw();
它似乎在渲染的行上正常工作。我可以删除渲染表中的多行。
但是如果我选择了行在不同的页面中,则上面的代码失败并出现错误TypeError:s [b]未定义。
非常感谢任何帮助。
答案 0 :(得分:0)
听起来我觉得您在删除因启用分页而隐藏的任何行时遇到问题。
我设置了一个小提琴,看起来你可以删除不在当前页面中的行。不过,有办法解决这个问题。
/* Init the table */
var oTable = $('#example').dataTable( ),
selectedChks = ['1', '4', '8', '10', '14', '19'];
/* Add a click handler for the delete row */
$('#delete').click( function() {
//revert table
oTable.fnDestroy();
$.each(selectedChks, function (index, cId)
{
//now that we reverted the table, lets just use jQuery to remove the row
$("#chk-"+cId).closest('tr').remove();
});
//initialize new table, so that row counts etc are updated
oTable = $('#example').dataTable();
} );