在对象中存储DataTables API实例

时间:2014-12-28 08:16:48

标签: javascript jquery datatables

在网页上,我有下表:

<table id="table1" class="dynamicTable">
...
...
</table>

在添加到我所有页面的JavaScript文件中,我有以下内容:

$(".dynamicTable").DataTable({ ... });

工作得很好。现在,在每个页面上,我需要访问DataTables API(初始化DataTables并调用其API在不同的地方完成)。我认为将API实例存储在表本身的属性中是个好主意,所以我改为:

$(".dynamicTable").each(function () {
    $(this).api = $(this).DataTable({ ... });
});

并尝试在我的页面上访问它:

$("#table1").api.rows()....

但它不起作用。我尝试过很多其他的东西,比如(在.each()函数内部):

$(this).get(0).api = $(this).DataTable({ ... });

var datatable = {};
datatable.api = $(this).DataTable({ ... });
$.extend($(this), datatable);

等等。请告诉我,如何将API实例存储在表中以供将来使用。

1 个答案:

答案 0 :(得分:0)

您可以使用.data()执行此操作:

$(this).data("api",$(this).DataTable({ ... }));

<强> Working Example