jquery数据表按索引删除行

Pat*_*cia 6 jquery datatables

我知道这个问题很受欢迎,但所有答案都是针对选定的行.我试图删除/删除未选中的行.我有一个表的变量,我想删除行,我有我要删除的行的索引.

这些是获取表或行句柄的各种方法:

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()


mar*_*ith 2

fnDeleteRow是正确使用的函数,但它并不像您想象的那么简单:

$('#delete').click(function(e){
    var row = oTable.find('tr').eq(3);
    oTable.fnDeleteRow(row[0]);
})
Run Code Online (Sandbox Code Playgroud)

请参阅此处了解工作版本。