我有一个包含几列的数据表。 其中之一是id = event
要通过“事件”进行过滤,我将发布一个具有多个select2(id = event_filter)的模式,然后单击“发送”按钮(id = filter-button),我将使用javascript启动以下代码。
$(document).ready(function (e) {
let table = $('#datatable-table').DataTable();
$('#filter-button').click(function (e) {
e.preventDefault();
let str = $('#event_filter').find(':selected').map(function() {
return $( this ).text();
})
.get()
.join( "|" );
if (str.length > 0){
console.log(str);
table
.columns($('th#event'))
.search(jQuery.fn.DataTable.ext.type.search.string(str),true,false )
.draw();
} else {
table
.columns($('th#event'))
.search("")
.draw();
}
})
})
选择选项包括:
-纳塔尔
-Natal前
-产后保育
问题是:当我选择“仅纳塔尔”时,console.log(str)返回纳塔尔,但是表过滤了“纳塔尔”,“纳塔尔前”和“后纳塔尔”。
您必须具有的行为是:
我选择Natal =>仅显示带有Natal的行
选择新生代和新生代=>仅出现具有新生代和新生代的行
我在做什么错了?
答案 0 :(得分:0)
最后我找到了解决方法:
return '^'+$(this).text()+'$';