【问题标题】:Apply column search to current jQuery DataTable将列搜索应用于当前 jQuery DataTable
【发布时间】:2016-05-03 13:54:56
【问题描述】:

我有一个当前运行正常的 jQuery DataTable:

 var $dataTable = $('#example1').DataTable({
   "ajax": 'api/tableSearch.php',
   "iDisplayLength": 25,
   "order": [[ 6, "desc" ]],
   "scrollY": 600,
   "scrollX": true,
   "bDestroy": true,
   "columnDefs": [{
     "targets": 0,
     "render": function (data, type, full, meta){
       return '<a class="editLink" href="#">Edit</a><a class="deleteLink" href="#">Del</a>':
     }
   }]
 });

如前所述,上面的代码相应地工作......搜索过滤器工作,排序工作,一切正常。

我想做的是向这个数据表添加一个列搜索,如下所示:
https://www.datatables.net/release-datatables/examples/api/multi_filter_select.html

我尝试将上面链接中的代码添加到我当前的代码中,如下所示:

 var $dataTable = $('#example1').DataTable({
   "ajax": 'api/tableSearch.php',
   "iDisplayLength": 25,
   "order": [[ 6, "desc" ]],
   "scrollY": 600,
   "scrollX": true,
   "bDestroy": true,
   "columnDefs": [{
     "targets": 0,
     "render": function (data, type, full, meta){
       return '<a class="editLink" href="#">Edit</a><a class="deleteLink" href="#">Del</a>':
     }
   }],  // begin here
   initComplete: function(){
     this.api().columns().every(function(){
       var column = this;
       var select = $('<select><option value=""></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+'">'+d+'</option>' )
         } );
        } );
      }
    } );        
 });     

我没有收到任何错误,数据表仍在加载,但列搜索不存在。

我使用的是 jQuery-2.1.3.min,所以它应该是最新的。

有谁知道我做错了什么以及我可以做些什么来纠正这个问题?

【问题讨论】:

  • 您的表格标记中有&lt;tfoot&gt; 吗?可能需要以下操作:var select = $('&lt;select&gt;&lt;option value=""&gt;&lt;/option&gt;&lt;/select&gt;') .appendTo( $(column.footer()).empty() )
  • 就是这样...我需要在表格中添加页脚。但现在,我的列错位了。

标签: javascript jquery search datatables


【解决方案1】:

&lt;tfoot&gt; 添加到您的表中。引用 column.footer() 的表达式期望它存在。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-27
    • 2020-11-02
    • 2016-10-14
    相关资源
    最近更新 更多