如何检查变量是否是初始化的DataTable?

时间:2016-09-28 19:54:40

标签: javascript jquery datatables

有没有办法确定变量是否是初始化的DataTable?我认为可以使用$.fn.dataTable.isDataTable(),但这仅适用于表选择器,而不适用于包含变量的变量初始化的DataTable。对于这些变量,此函数返回false:

var table = $("#table").DataTable(); // Valid initialized DataTable
console.log($.fn.dataTable.isDataTable("#table")); // Returns true
console.log($.fn.dataTable.isDataTable(table)); // Returns false...why?

由于$.fn.dataTable.isDataTable()不能用于检查变量,是否有另一种方法可以查看这样的变量是否是初始化的DataTable?我基本上都试图这样做:

if (isDataTable(variable)) {
    // datatable ... do datatable stuff
} else {
    // not a datatable... do other stuff
}

3 个答案:

答案 0 :(得分:4)

asked this question给DataTables的创建者,他建议使用instanceof

var table = $("#table").DataTable(); // Valid initialized DataTable
if (table instanceof $.fn.dataTable.Api) {
    // datatable ... do datatable stuff
} else {
    // not a datatable... do other stuff
}

此方法完全符合要求。他还继续在this commit中扩展$.fn.dataTable.isDataTable(),以便允许变量输入。

答案 1 :(得分:1)

您不需要将JQuery实例传递给isDataTable()

isDataTable()需要一个ID。

有关详细信息:isDataTable()

请检查:

How to check if DataTables are initialized

答案 2 :(得分:0)

来自DataTable的Documentacion:

https://datatables.net/reference/api/ $。fn.dataTable.isDataTable()

  

此方法可以检查 表(标记) 节点是否已经是   DataTable与否。这可以确保您不这样做   重新初始化一个已经是DataTable的表。