Javascript 数据表还是搜索?
我正在使用jQuery插件 如果某个术语至少在两个特定列中的一列中显示,我想搜索该表 下面的当前代码仅查找单词Javascript 数据表还是搜索?,javascript,search,datatables,Javascript,Search,Datatables,我正在使用jQuery插件 如果某个术语至少在两个特定列中的一列中显示,我想搜索该表 下面的当前代码仅查找单词“word”位于两列中的行。我需要在列中找到单词所在的行 $table.DataTable().columns([0,1]).search("word"); 我考虑过使用全局搜索,并将其他列的可搜索选项设置为false,但我找不到在运行时更改此选项的方法。搜索所有列 搜索表时可以使用正则表达式 例如,下面的代码显示所有列中包含单词Angelica或London的搜索结果 var tab
“word”
位于两列中的行。我需要在列中找到单词所在的行
$table.DataTable().columns([0,1]).search("word");
我考虑过使用全局搜索,并将其他列的可搜索选项设置为false,但我找不到在运行时更改此选项的方法。搜索所有列
搜索表时可以使用正则表达式
例如,下面的代码显示所有列中包含单词Angelica
或London
的搜索结果
var table=$('#示例').DataTable();
桌子
.search('Angelica | London',对,错)
.draw();
有关代码和演示,请参阅
搜索特定列
要搜索特定列,您可能需要利用功能
下面的代码显示了在索引为0
、1
和2
的表数据值中包含单词Angelica
或Tokyo
的搜索结果
var table=$('#示例').DataTable();
var术语=['Angelica','Tokyo'];
//将术语转换为小写
$。每个(术语、函数(索引、值){
术语[索引]=value.toLowerCase();
});
//启用自定义搜索
$.fn.dataTable.ext.search.push(
功能(设置、数据、数据索引){
var isFound=false;
$.each(数据、函数(索引、值){
//仅计算前三个数据值
如果(索引===0 | |索引===1 | |索引===2){
//将数据转换为小写
value=value.toLowerCase();
$.each(术语、函数(TermDex、termValue){
//如果数据包含术语
if(value.indexOf(termValue)!=-1){
isFound=true;
}
返回!isFound;
});
}
返回!isFound;
});
发现退货;
}
);
//执行搜索
table.draw();
//禁用自定义搜索
$.fn.dataTable.ext.search.pop();
有关代码和演示,请参阅。这不是他的问题,他只想在列表中使用两列DataTable@JeanDoux,说得好。如果OP希望搜索特定列,则添加了替代(更复杂)解决方案。自定义搜索看起来像我需要的,但我需要搜索在特定两列中找到的一个(而不是两个)术语。所以我想我不需要$。代码中的每个部分?第二,如何在运行时启用/禁用自定义搜索?表示我不希望插件始终应用此自定义搜索,我希望在代码中禁用/启用它。@user3599803,自定义搜索使用
$.fn.dataTable.ext.search.pop()禁用
,请参阅发布的代码。好的,那么每次使用自定义搜索后,我都会从数组中弹出此函数?因为我不想失去正常的全局搜索。因此,我认为我应该将自定义搜索函数存储在一个变量中,然后在需要时按下/弹出该函数。谢谢