jquery数据表按索引删除行

时间:2017-09-21 20:11:32

标签: jquery datatables

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

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

var table = $('#tableName');
var rows = $('#tableName tbody tr').toArray();
var oTable = $('#tableName').dataTable();

我知道如何在所选行上使用row.remove()方法。

var jThisButton = $(this);
var jRow = jThisButton.parents("tr");
jRow.remove();

但我的行未被选中;相反,我有一个索引。假设我的索引是2.使用类似上面代码的东西,也许我可以逐行索引并将其删除如下:

var jRow = table.find('tr').eq(index);
jRow.remove();

除非不起作用。该代码将我想要删除的行移动到最后一行,并且显示搜索栏。

enter image description here

您可以在下图中看到表格中有4行。

如何删除索引2中存在的tr?

enter image description here

我无法在任何地方找到这个问题的答案。请帮忙!

3 个答案:

答案 0 :(得分:4)

试试这个:

oTable.row(index).remove().draw();

从DOM中删除tr不会将其从DataTable中删除。 如果再次绘制DataTable,则删除的行将返回查看。

remove()将从DataTable中删除该行,并且调用draw()将更新DataTable。这也将更新行计数信息。

<强>更新

对于DataTable 1.9.4,以下代码将起作用

oTable.fnDeleteRow(index);

draw()

之后刷新DataTable时,不需要

fnDeleteRow()

答案 1 :(得分:1)

试试这个:

$("tr").eq(1).remove();

答案 2 :(得分:1)

fnDeleteRow是正确使用的功能,但它并不像你想象的那样直截了当:

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

有关正常工作的版本,请参阅here