动态显示/隐藏DataTables 1.10中的列

动态显示/隐藏DataTables 1.10中的列,datatables,Datatables,我正在尝试使用DataTables主页的示例部分中的代码动态隐藏/显示复选框(onChange事件) function(e){ //e.preventDefault(); console.log($(this).attr('datacolumn')); // Get the column API object var column = table.column($(this).attr('datacolumn')); // Toggle the vis

我正在尝试使用DataTables主页的示例部分中的代码动态隐藏/显示复选框(onChange事件)

function(e){
    //e.preventDefault();
    console.log($(this).attr('datacolumn'));

    // Get the column API object
    var column = table.column($(this).attr('datacolumn'));

    // Toggle the visibility
    column.visible( ! column.visible() );
}
然而,我得到了一个错误。它说table.column是“未定义的”

未捕获类型错误:未定义不是函数

我尝试过改变table变量的范围,以便在Chrome控制台中与之交互。就我所见,它只是指向一个htmlcontent

更新

当我指定对象的完整路径时,它起作用了

var column = $('#example').dataTable().api().column($(this).attr('datacolumn'))

另外,这里有一个非常简单的脚本 根据表格和表格内容动态添加切换按钮 在桌子上的一个小隔间里 并绑定一个单击按钮以切换每个视图的可见性

$(文档).ready(函数(){
变量表=$(“#示例”).DataTable();
//对于标题中的每一列,在div中添加一个togglevis按钮
$(“#示例thead th”)。每个(函数(i){
var name=table.column(i).header();
var spanelt=document.createElement(“按钮”);
spanelt.innerHTML=name.innerHTML;
$(spanelt).addClass(“colvistoggle”);
$(spanelt).attr(“colidx”,i);//将列idx存储在按钮上
$(spanelt).on('click',函数(e){
e、 预防默认值();
//获取列API对象
var column=table.column($(this.attr('colidx'));
//切换可见性
column.visible(!column.visible());
});
$(“#colvis”)。追加($(spanelt));
});
} );

感谢您回答这个问题,因为它帮助我找到了自己的解决方案。我想根据用户查看的页面将一列设置为不可见,您的解决方案经过轻微修改后产生了巨大的效果<代码>$(“#示例”).dataTable().api().column(1).可见(false)