函数fnIsDataTable始终返回false

时间:2014-10-08 14:02:35

标签: datatable

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

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

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:3)

我找到了解决方案。我们需要通过使用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
    } );
  }
}

答案 1 :(得分:0)

或者,从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()