【发布时间】: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,所以它应该是最新的。
有谁知道我做错了什么以及我可以做些什么来纠正这个问题?
【问题讨论】:
-
您的表格标记中有
<tfoot>吗?可能需要以下操作:var select = $('<select><option value=""></option></select>') .appendTo( $(column.footer()).empty() ) -
就是这样...我需要在表格中添加页脚。但现在,我的列错位了。
标签: javascript jquery search datatables