如何从数据表中获取最后插入的行

时间:2019-12-24 08:13:48

标签: javascript datatables

我正在使用datatables插件来创建数据表。我放置了一个按钮以添加新行。新插入的行可以在任何位置,具体取决于表的排序依据。插入行后,我需要为行内的按钮设置一个事件。因此,我必须获得最后插入的行。但是我找不到办法。我在下面尝试过,但是没有用。 index()不会返回行实际所在的确切索引。

var row = table.row.add({...});
row.draw();
var tr = $('#datatable tbody tr').get(row.index());

请帮助。谢谢您的回答,并在此先感谢您。

3 个答案:

答案 0 :(得分:1)

  

取表和-1的长度,该数字为最后一个index   tr

var lastRowIndex = $('#datatable tr').length -1;

答案 1 :(得分:1)

新行将添加到行列表的末尾,因此您可以执行以下操作

table.row(table.rows().count()-1)

请参见小提琴here

答案 2 :(得分:0)

使用任何插件提供的功能都找不到解决方法。但是感谢上帝,有一个解决方法。

  

在列渲染功能中标记插入的行。例如,我附加一个标签

datatable = $('#datatable').DataTable({columns : [{render : function(){... <last/> ...}}]});
  

在插入新行时,将其插入带有指示包含标志的数据。通过标志获取行。然后删除该标志。

datatable.row.add({...}).draw();
var row = $('last').parents('tr');
$('last').remove();
  

对于不需要显式编辑<tr>的其他任何情况,请获取最后插入的行的索引。获取数据表行并更新数据。设置列渲染功能以相应地渲染更新的行。

var i = datatable.rows().count() - 1;
var data = datatable.row(i).data();
datatable.row(i).data(changeSomething(data)).draw();
  

并删除行

datatable.row(i).remove().draw();