Javascript dataTables:删除除一个外的所有选定输入

Javascript dataTables:删除除一个外的所有选定输入,javascript,jquery,datatable,datatables,Javascript,Jquery,Datatable,Datatables,Hy 下面的多过滤器选择数据表适合我的项目 但是,我想删除除一个外的所有选择输入(在表的底部),如上面页面中的“Office”选择输入,并显示默认标题,如“Choose Office”,而不是空白 因为我对dataTables和JS都很陌生,所以不知道如何使用dataTables API来定制它,所以anybuddy可以帮助我 谢谢 dk您只需要稍微修改给定的代码。 不要对每一列进行预加工,而是对一列进行预加工,以便: /*this.api().columns().every( functio

Hy

下面的多过滤器选择数据表适合我的项目

但是,我想删除除一个外的所有选择输入(在表的底部),如上面页面中的“Office”选择输入,并显示默认标题,如“Choose Office”,而不是空白

因为我对dataTables和JS都很陌生,所以不知道如何使用dataTables API来定制它,所以anybuddy可以帮助我

谢谢
dk

您只需要稍微修改给定的代码。 不要对每一列进行预加工,而是对一列进行预加工,以便:

/*this.api().columns().every( function () {
  var column = this;
} )*/
var column = this.api().column(2);
删除空白并显示“选择办公室”之类的东西。您需要将文本放置在选项的结束标记和开始标记之间

var select = $('<select><option value="">YOUR TEXT HERE</option></select>')
var select=$('YOUR TEXT HERE')
这是完整的代码和一个

$(文档).ready(函数(){
$('#示例')。数据表({
initComplete:function(){
var column=this.api().column(2);
var select=$(“选择办公室”)
.appendTo($(column.footer()).empty())
.on('change',function()){
var val=$.fn.dataTable.util.escapeRegex(
$(this.val()
);
柱
.search(val?“^”+val+“$”:“”,true,false)
.draw();
});
column.data().unique().sort().each(函数(d,j){
select.append($('',{value:d,text:d}));
});
}
});
});
编辑: 我也很自由,用
$('{value:d,text:d})替换
'+d+'
,来修复xss
漏洞和允许值与

@RolandStarke将此作为一个答案(mabye提供了一些解释);这似乎是他的问题的确切解决方案,我怀疑任何其他答案都会提示除此之外的任何东西:)嗨,你的代码只适用于较新版本的数据表(至少在我使用的dataTables.js版本中它不起作用)所以我将我的js版本更新为您在fiddle中引用的版本,并且它起了作用。另外,请注意不要删除页脚中未使用的列标题或未形成select的列标题。@dkjain很高兴听到它起作用。我使用了您提供的链接版本。
$(document).ready(function() {
  $('#example').DataTable({
    initComplete: function() {
      var column = this.api().column(2);
      var select = $('<select><option value="">Choose Office</option></select>')
        .appendTo($(column.footer()).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, text: d}));
      });
    }
  });
});