函数fnIsDataTable始终返回false

问题描述:

我正在使用数据表版本1.9.4。使用datatable的fnIsDataTable函数我需要检查数据表是否已经被初始化。但是使用fnIsDataTable函数总是返回false。以下是我的功能:函数fnIsDataTable始终返回false

function getData() { 
    if ($.fn.DataTable.fnIsDataTable("#example")) { 
     $("#example").dataTable(); 
    } else { 
     $("#example").dataTable({ 
      bLengthChange": false, 
      "bFilter": true, 
      "bInfo": false, 
      "bSort": false, 
      "iDisplayLength": 50 
     }); 
    } 
} 

有人可以帮助我吗?

我找到了解决方案。我们需要通过使用javascript函数getElementById来获取该表格元素的引用,然后在fnIsDataTable函数中使用该引用变量来检查其初始化。如下图所示:

function getData() { 
 
    var ex = document.getElementById("example"); 
 
    if ($.fn.DataTable.fnIsDataTable(ex)) { 
 
    $("#example").dataTable(); 
 
    } else { 
 
    $("#example").dataTable({ 
 
     "bLengthChange": false, 
 
     "bFilter": true, 
 
     "bInfo": false, 
 
     "bSort": false, 
 
     "iDisplayLength": 50 
 
    }); 
 
    } 
 
}

+0

完美。谢谢! – Cheeky 2016-07-16 20:13:36

另外,因为V1.10,你可以简单地使用isDataTable代替fnIsDataTable

function getData() { 
 
    if ($.fn.DataTable.isDataTable("#example")) { 
 
    $("#example").dataTable(); 
 
    } else { 
 
    $("#example").dataTable({ 
 
     "bLengthChange": false, 
 
     "bFilter": true, 
 
     "bInfo": false, 
 
     "bSort": false, 
 
     "iDisplayLength": 50 
 
    }); 
 
    } 
 
}

查看文档:https://datatables.net/reference/api/%24.fn.dataTable.isDataTable()

+1

他正在使用v1.9.4,'isDataTable()'被添加到v1.10。 – Raisch 2017-02-01 14:17:11

+0

@Raisch好点。适当地更新了我的措辞。 – AntonChanning 2017-02-06 11:41:45