我正在寻找一种方法来了解页面中的表是否为dataTable?有没有一种简单的方法可以找到它?或者可能是我可以获得dataTable的所有对象。
答案 0 :(得分:11)
DataTables插件中有一个静态方法,因此您可以验证为:
$('table').each(function() {
// this method accepts the DOM node (table element) as parameter
if ( $.fn.dataTable.fnIsDataTable(this) ) {
// do your thing to the table
}
});
答案 1 :(得分:2)
if($('table').parents('.dataTable_wrapper').length>= 1) {
do something...
}
这有点像黑客但是还没有一种本地方法来检查数据表实例。这是我昨天碰巧学到的东西。
答案 2 :(得分:2)
可以一次性获取DataTables页面上的所有表格。 DataTables 1.10的代码是:
$.fn.dataTable.tables()
这里是doc。这将返回 DOM元素的数组。如果要获取与它们关联的DataTable API实例,可以执行以下操作:
var tables = $.fn.dataTable.tables();
var datatables = $(tables).DataTable();
请注意,虽然像上面这样调用.DataTable()
可以创建一个新的DataTable API实例并因此初始化您的表,如果调用该方法的DOM元素已经拥有自己的实例(API已经创建并初始化),调用将不创建新实例。换句话说,上面的代码不会重新初始化您的表。
此处的datatables
对象是一个API实例,用于控制表的整个集合。在此实例上调用API函数将立即控制所有表。调整文档中的示例,此代码:
datatables.page('next').draw(false);
会使所有表格跳转到下一页(如果存在)。
在1.10之前的版本中,等效函数为$.fn.dataTable.fnTables
。
Roy Ling提到$.fn.dataTable.fnIsDataTable
可以单独测试表。当然,在1.10中,仍然可以在需要时单独测试表,函数为$.fn.dataTable.isDataTable
。
答案 3 :(得分:0)
我知道这个问题可能已经发布了一段时间,但是当我自己提出同样的问题时,我从DataTable参考site找到了这个解决方案。
以下是检查#example是否为DataTable的方法。如果没有,请初始化:
if ( ! $.fn.DataTable.isDataTable( '#example' ) ) {
$('#example').dataTable();
}
希望这有助于某人!