当我将Datatables列过滤及其内置的select过滤器一起使用时,它与my混淆<span class="label label-success"> Active </span>
并返回以下代码:
我希望它没有“ Deleted“> Deleted”等,而只返回Deleted,Active,Inactive,以便过滤正常工作。
我的Javascript
$(document).ready(function() {
$('#questionnaireTable').DataTable( {
select: {
style: 'multi'
},
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>' )
} );
} );
}
} );
} );
刀片引擎(Laravel)返回HTML:
<td>
@if($questionnaire->deleted_at)
<span class="label label-danger"> Deleted </span>
@elseif($questionnaire->status == \App\Models\Questionnaire::STATUS_ACTIVE)
<span class="label label-success"> Active </span>
@elseif($questionnaire->status == \App\Models\Questionnaire::STATUS_INACTIVE)
<span class="label label-warning"> Inactive </span>
@else
<span class="label label-danger"> Invalid Status </span>
@endif
</td>
任何指针将不胜感激!
column.data().unique().sort().each( function ( d, j ) {
select.append( '<option value="'+d+'">'+d+'</option>' )
} );
我认为是因为在上面的代码中,当在循环中时,d = '<span class="label label-danger"> Deleted/Active... </span>'
。
通过使用以下命令生成选项字符串之前,只能获取跨度中的文本 $(d).text()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句