我正在使用Jquery数据表,我希望如果我搜索" car",它需要突出显示" Car"," CAR", " caR"," C a-r" " C -ar"等等。目前,如果我搜索汽车,它不会显示Ca-r或C -ar。我怎样才能做到这一点?请帮助谢谢!
答案 0 :(得分:1)
您可以创建自己的自定义过滤功能来处理这样的情况:
var table = $('#datatable').DataTable();
$.fn.dataTable.ext.search.push(
function(settings, data, dataIndex) {
// apply your custom filtering logic here
}
);
$('#datatable_filter input').keyup(function() {
table.draw(); // Redraw the table when the search input field is changed
});
扩展回答:
这里没有什么特别聪明,代码只是从表格单元格中的数据中删除任何spaces
和hyphens
并根据它进行比较。如果您需要更强大的功能,则需要查看regular expressions
。
$(document).ready(function() {
var table = $('#datatable').DataTable();
$.fn.dataTable.ext.search.push(
function (settings, data, dataIndex) {
var origInput = $('#search').val().toLowerCase();
var input = $('#search').val().replace(/\ /g, '').toLowerCase();
var strSearch = data.toString();
strSearch = strSearch.replace(/\ /g, '');
strSearch = strSearch.replace(/\-/g, '');
if (input.length == 0) {
return true;
} else if (data.toString().toLowerCase().indexOf(origInput) >= 0) {
return true;
} else if (strSearch.toLowerCase().indexOf(input) >= 0) {
return true;
}
return false;
});
$('#search').keyup(function() {
table.draw(); // Redraw the table when the search input field is changed
});
});
更新了演示here。