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

我尝试使用相同的值在多列中搜索,默认情况下这些值存在于表中,如果我使用此代码在一列中搜索,它可以正常工作而没有任何问题:

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 运算符?


小唯快跑啊
浏览 100回答 1
1回答

守候你守候我

使用自定义插件 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));
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript