Can't hide column in jquery datatable shows TypeError: table.column is not a function

Can't hide column in jquery datatable shows TypeError: table.column is not a function

我正在使用 jQuery 数据表来显示我的记录的网格视图。

我从 here.

中引用了 show/hide api 列

按照定义,我正在尝试在我的项目中使用它与所有 CSS 和 JS 文件。

当我 运行 它显示错误为:

TypeError: table.column is not a function

我的jquery是这样的:

    $(document).ready(function() {
    var table = $('.dataTables-example').dataTable({"scrollX": true});

    $('a.toggle-vis').on( 'click', function (e) {
    e.preventDefault();
    var column = table.column($(this).attr('data-column') );

    column.visible( ! column.visible() );
} );
});

有什么我遗漏的吗?

您在此行中调用了 datatables 1.9 或更早版本:

var table = $('.dataTables-example').dataTable({"scrollX": true});

将其更改为:

var table = $('.dataTables-example').DataTable({"scrollX": true});

注意 DataTable 中的大写字母 D。您需要它才能调用数据表 1.10+ 并使用其功能,例如 column(DT),这在以前的版本中不存在。

例如:https://datatables.net/manual/api#Accessing-the-API

您可能还需要为数据表 v1.10.0+ 版本更改此设置:

var column = table.api().column( $(this).attr('data-column') );

那些在数据表版本1.9.*中遇到类似问题的人可以做到

// column
    var ColNum = $(this).attr('data-column');

    // Define
    var bVis = table.fnSettings().aoColumns[ColNum].bVisible;

    // Toggle
    table.fnSetColumnVis(ColNum, bVis ? false : true);

而不是

var column = table.column($(this).attr('data-column') );

column.visible( ! column.visible() );