我知道这个问题很受欢迎,但所有答案都是针对选定的行.我试图删除/删除未选中的行.我有一个表的变量,我想删除行,我有我要删除的行的索引.
这些是获取表或行句柄的各种方法:
var table = $('#tableName');
var rows = $('#tableName tbody tr').toArray();
var oTable = $('#tableName').dataTable();
Run Code Online (Sandbox Code Playgroud)
我知道如何row.remove()在选定的行上使用该方法.
var jThisButton = $(this);
var jRow = jThisButton.parents("tr");
jRow.remove();
Run Code Online (Sandbox Code Playgroud)
但我的行没有被选中 ; 相反,我有一个索引.假设我的索引是2.使用类似上面代码的东西,也许我可以按索引逐行删除它,如下所示:
var jRow = table.find('tr').eq(index);
jRow.remove();
Run Code Online (Sandbox Code Playgroud)
除此之外不起作用.该代码将我要删除的行移动到最后一行并且变得不稳定,显示搜索栏.
您可以在下图中看到表格中有4行.
如何删除索引2中存在的tr?
我无法在任何地方找到这个问题的答案.请帮忙!
Bin*_*man 10
尝试这个:
oTable.row(index).remove().draw();
Run Code Online (Sandbox Code Playgroud)
从 DOM 中删除 tr 不会从 DataTable 中删除它。如果再次绘制 DataTable,删除的行将返回到视图。
该remove()会从数据表中删除行,并呼吁draw()将更新数据表。这也将更新行计数信息。
更新
对于 DataTable 1.9.4,下面的代码将起作用
oTable.fnDeleteRow(index);
draw() 不需要,因为数据表在刷新后 fnDeleteRow()
fnDeleteRow是正确使用的函数,但它并不像您想象的那么简单:
$('#delete').click(function(e){
var row = oTable.find('tr').eq(3);
oTable.fnDeleteRow(row[0]);
})
Run Code Online (Sandbox Code Playgroud)
请参阅此处了解工作版本。