我正在使用DataTables jQuery插件。
如果某个术语显示在两个特定列中的至少一个列中,我想搜索该表。
以下当前代码仅查找单词"word"
位于两个列中的行。我需要找到列中 列的行。
$table.DataTable().columns([0,1]).search("word");
我考虑使用全局搜索并将其他列的可搜索选项设置为false,但我无法在运行时找到更改此选项的方法。
答案 0 :(得分:2)
搜索表格时可以使用正则表达式。
例如,下面的代码显示了所有列中包含单词Angelica
或London
的搜索结果。
var table = $('#example').DataTable();
table
.search('Angelica|London', true, false)
.draw();
请参阅this jsFiddle以获取代码和演示。
要搜索特定列,您可能需要使用custom search功能。
下面的代码显示了包含索引Angelica
,Tokyo
和0
的表数据值中包含单词1
或2
的搜索结果。
var table = $('#example').DataTable();
var terms = ['Angelica', 'Tokyo'];
// Convert terms to lower case
$.each(terms, function(index, value){
terms[index] = value.toLowerCase();
});
// Enable custom search
$.fn.dataTable.ext.search.push(
function (settings, data, dataIndex) {
var isFound = false;
$.each(data, function (index, value){
// Evaluate only first three data values
if(index === 0 || index === 1 || index === 2){
// Convert data to lower case
value = value.toLowerCase();
$.each(terms, function(termIndex, termValue){
// If data contains the term
if (value.indexOf(termValue) !== -1) {
isFound = true;
}
return !isFound;
});
}
return !isFound;
});
return isFound;
}
);
// Perform search
table.draw();
// Disable custom search
$.fn.dataTable.ext.search.pop();
请参阅this jsFiddle以获取代码和演示。