Jquery 当列具有链接时,Datatable列选择筛选器排序()不工作
我正在使用datatable列选择过滤器。在其中一列我有html链接标记,这导致在顶部显示未排序的选择选项Jquery 当列具有链接时,Datatable列选择筛选器排序()不工作,jquery,laravel,datatable,datatables,Jquery,Laravel,Datatable,Datatables,我正在使用datatable列选择过滤器。在其中一列我有html链接标记,这导致在顶部显示未排序的选择选项 <th><a href="{{route('customer.information', $customer->id)}}">{{ $customer->name }}</a></th> $(文档).ready(函数(){ $('#colSearch')。数据表({ “订单”:[], initCompl
<th><a href="{{route('customer.information', $customer->id)}}">{{ $customer->name }}</a></th>
$(文档).ready(函数(){
$('#colSearch')。数据表({
“订单”:[],
initComplete:函数(){
this.api().列([0,1,2,3,4,5,6])。每个(函数(){
var列=此;
var colTitle=this.header().innerHTML;
var select=$('select'+colTitle+'')
.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){
var val=$('').html(d.text();
select.append(“”+val+“”);
} );
} );
}
} );
} );
您可以检查示例数据表,这是因为: (1)
column.data()
(2) 然后对提取的数据进行排序。因此,您实际上使用的是
,而不是使用Tiger Nixon
进行排序
要解决此问题,您可以等到删除HTML后再对数据进行排序。例如:
var opts=[];
column.data().unique().each(函数(d,j){
opts.push($('').html(d.text());
} );
opts.sort();
opts.forEach(功能(项、索引){
选择。追加(“”+项+“”);
} );
成功了,谢谢:)
<script>
$(document).ready(function() {
$('#colSearch').DataTable( {
"order": [],
initComplete: function () {
this.api().columns([0,1,2,3,4,5,6]).every( function () {
var column = this;
var colTitle = this.header().innerHTML;
var select = $('<select><option value="">Select ' + colTitle + '</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 ) {
var val = $('<div/>').html(d).text();
select.append( '<option value="' + val + '">' + val + '</option>' );
} );
} );
}
} );
} );
</script>