为了账号安全,请及时绑定邮箱和手机立即绑定

DataTables:使用 OR 运算符在多列中搜索

DataTables:使用 OR 运算符在多列中搜索

小唯快跑啊 2022-10-27 15:41:22
我尝试使用相同的值在多列中搜索,默认情况下这些值存在于表中,如果我使用此代码在一列中搜索,它可以正常工作而没有任何问题:table.column(0).search('blabla\\s*$', true, false).draw()如果我尝试使用其他值搜索第二列,则可以正常工作:table.column(1).search('bla\\s*$', true, false).draw()因此,我尝试使用此代码搜索两列(我在 StackOverflow 和 Officiel DataTable 文档中找到了它)table.columns([0, 1]).search('bla\\s*$', true, false).draw()但它不起作用,所以,我分析它,我发现datatable搜索使用 AND 运算符,这意味着'bla'需要存在于两列,但我想使用 OR 运算符。我尝试创建我的自定义过滤器,但除了实现的繁重之外,它还有很多问题,是否有任何解决方案可以在数据表的搜索列上使用 OR 运算符?
查看完整描述

1 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

使用自定义插件 using $.fn.dataTable.ext.search,因为它只是一组函数,您可以根据需要使用该事实来激活和停用过滤器


myfilter = function(settings, data, dataIndex) {

var str1 = data[0]

var str2 = data[1]

if (str1.search(/bla\\s*$/g) != -1 || str2.search(/bla\\s*$/g) != -1) {

  return true;

}

return false;

});


$.fn.dataTable.ext.search.push(myfilter)

    

   

删除您只需执行的过滤器


$.fn.dataTable.ext.search.splice($.fn.dataTable.ext.search.indexOf(myfilter, 1));


查看完整回答
反对 回复 2022-10-27
  • 1 回答
  • 0 关注
  • 99 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信