无法使用DataTable通过分页的Ajax更新

时间:2018-09-26 05:11:05

标签: javascript jquery ajax datatable pagination

我正在使用Datatable插件在HTML表格上使用分页。我有一个复选框可以选择不同页面上的不同行。每行都有一个唯一的ID。但是当我需要在ajax调用之后更新行单元格时,如果当前我不在该行的页面上,那么JS无法通过ID识别该元素。当我这样做时,它基本上返回null:-

document.getElementById('xyz').

当前页面中的行已更新,但其他页面上的行未更新。请帮助我。

1 个答案:

答案 0 :(得分:0)

DataTables行选择器针对ID进行了优化,因为很自然希望通过唯一信息选择行。这与jQuery选择器不同,因为DataTables可以优化此选择器类型以使其不涉及DOM-还允许id行选择器对尚未创建其DOM节点的行进行操作(当使用deferRender进行额外速度处理时)。

对于动态来源的数据,使用rowId选项分配给该行的id是标识符。用作ID的数据可以是任何值,尽管在表中必须是唯一的。

要使用ID选择器,只需在要选择的行的ID值前加上数字符号即可:#。后面的值用作id。与jQuery不同,此值不需要转义-尽管这意味着必须单独使用id选择器(例如,不能同时使用类名),但它确实使复杂数据的使用更加容易。

通过ID选择一行:

var table = $('#example').DataTable();
var row = table.row('#row-42');

通过ID选择多行:

var table = $('#example').DataTable();
var rows = table.rows( [ '#row-42', '#row-51' ] );

来源:https://datatables.net/reference/type/row-selector