如何在 Jquery 数据表中应用搜索词?
How to apply Search term in Jquery Datatables?
我正在使用 Jquery 数据表,我希望如果我搜索 "car",它需要突出显示 "Car"、"CAR"、"caR" , "C a-r" "C -ar" 等等。目前,如果我搜索汽车,它不会显示 Ca-r 或 C -ar。我怎样才能做到这一点?请帮忙谢谢!
您可以创建自己的自定义过滤函数来处理这样的情况:
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
});
请参阅文档 here, and an example here。
扩展答案:
这里没有什么特别聪明的地方,代码只是从 table 单元格中的数据中删除任何 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。
我正在使用 Jquery 数据表,我希望如果我搜索 "car",它需要突出显示 "Car"、"CAR"、"caR" , "C a-r" "C -ar" 等等。目前,如果我搜索汽车,它不会显示 Ca-r 或 C -ar。我怎样才能做到这一点?请帮忙谢谢!
您可以创建自己的自定义过滤函数来处理这样的情况:
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
});
请参阅文档 here, and an example here。
扩展答案:
这里没有什么特别聪明的地方,代码只是从 table 单元格中的数据中删除任何 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。