有没有办法确定变量是否是初始化的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
}
答案 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)
答案 2 :(得分:0)
来自DataTable的Documentacion:
https://datatables.net/reference/api/ $。fn.dataTable.isDataTable()
此方法可以检查 表(标记) 节点是否已经是 DataTable与否。这可以确保您不这样做 重新初始化一个已经是DataTable的表。