2015-12-14 59 views
0

使用DataTables Multi Filter Select切换在头VS页脚显示,我想保留标题栏标题到位或至少在我的选择列表中的第一个选项:DataTables多重过滤器选择列中的列标题?

<option value="" disabled selected hidden>THIS COL HEADER TITLE</option> 

不过,我无法获取列标题。

这里是过滤器:

$('#requests-table').DataTable({ 
     pagingType: "full_numbers", 
     bSort: false, 
     initComplete: function() { 
      //console.log(this.api().columns()); 
      var columns = this.api().columns(); 
      columns[0].shift(); 
      //console.log(this.api().columns()); 
      columns.every(function() { 
       var column = this; 
       //console.log(this); 
       var select = $('<select class="max-width-100"><option value=""></option></select>') 
        .appendTo($(column.header()).empty()) 
        .on('change', function() { 
         var val = $.fn.dataTable.util.escapeRegex(
          $(this).val() 
         ); 

         column 
          .search(val ? '^' + val + '$' : '', true, false) 
          .draw(); 
        }); 

       column.data().unique().sort().each(function(d, j) { 
        select.append('<option value="' + d + '">' + d + '</option>') 
       }); 
      }); 
     } 
    }); 

这似乎是答案:

var idx = table.cell(this).index().column; 
    var title = table.column(idx).header(); 

...但我不能让它在这里工作。

我会再有我的选择,像这样每个山坳日:

<option value="" disabled selected hidden>'+ title +'</option> 

想法或帮助?

回答

0

更换

var select = $('<select class="max-width-100"><option value=""></option></select>') 

var select = $('<select><option value="">' + $(this.header()).html() + '</option></select>')