Javascript 如何删除JQuery数据表中的列?

Javascript 如何删除JQuery数据表中的列?,javascript,jquery,datatable,datatables,datatables-1.10,Javascript,Jquery,Datatable,Datatables,Datatables 1.10,我想删除总计为0的列 所以我尝试了不同的方法 首先,例如,我为所有列分配了ID;每个都是of列,将有它们的ID,例如:第一列,第二列所有等。然后在我尝试删除的页脚回调中,如果此列总数为零,则此$(“col_”+I).remove();这段代码删除了表头,所以我再次尝试使用$(“col\u”+I).empty(),但它还是空的仅限 然后我尝试通过创建动态来隐藏列,但没有得到任何值 "footerCallback": function ( row, data, start, end, dis

我想删除总计为0的列

所以我尝试了不同的方法

首先,例如,我为所有列分配了ID;每个
都是of列,将有它们的ID,例如:第一列
,第二列所有
等。然后在我尝试删除的页脚回调中,如果此列总数为零,则此
$(“col_”+I).remove()
;这段代码删除了表头,所以我再次尝试使用$(“col\u”+I).empty(),但它还是空的<代码>仅限

然后我尝试通过创建动态来隐藏列,但没有得到任何值

    "footerCallback": function ( row, data, start, end, display ) 
    {
        var api = this.api(), data;  
        var intVal = function ( i ) { return typeof i === 'string' ? i.replace(/[\$,]/g, '')*1 : typeof i === 'number' ?    i : 0;};

        var col_gonna_invis = '[';
        for(i=1;i<length_of_coloumns;i++)
            {
                total_salary = api.column( i ).data().reduce( function (a, b) {return intVal(a) + intVal(b);},0 );
                $('#total_cont_'+i).html(total_salary); 
                if(total_salary == 0)
                {
                    col_gonna_invis += '{"targets": [ '+i+' ], "visible": false, "searchable": false },';
                }
            }
        col_gonna_invis += ']';alert(col_gonna_invis);  
    },

    "aoColumnDefs": col_gonna_invis;
“footerCallback”:函数(行、数据、开始、结束、显示)
{
var api=this.api(),数据;
var intVal=函数(i){return typeof i=='string'?i.replace(/[\$,]/g',)*1:typeof i=='number'?i:0;};
var col_to_invi='[';

对于(i=1;i我建议您使用API方法和插件:

使用
column().sum()
方法增强API:

jQuery.fn.dataTable.Api.register( 'sum()', function ( ) {
    return this.flatten().reduce( function ( a, b ) {
        if ( typeof a === 'string' ) {
            a = a.replace(/[^\d.-]/g, '') * 1;
        }
        if ( typeof b === 'string' ) {
            b = b.replace(/[^\d.-]/g, '') * 1;
        }

        return a + b;
    }, 0 );
} );
现在,在
initComplete()
中,您可以非常轻松地隐藏
total
sum()为0的列:

var table = $('#example').dataTable({
   //... 
   initComplete : function() {
      var api = this.api(), 
          colCount = api.row(0).data().length;
      for (var i=0; i<colCount; i++) {
          if (api.column(i).data().sum() == 0) {
              api.column(i).visible(false);
          }
      }     
    }
});
var table=$('#示例').dataTable({
//... 
initComplete:function(){
var api=this.api(),
colCount=api.row(0.data().length;

对于(var i=0;i

你能用小提琴复制你的问题吗?这样会更容易帮助你。@davidkonard简直太棒了。。非常感谢:)再次感谢你