jQuery DataTables过滤多个单词并返回至少与其中一个匹配的所有行

时间:2014-04-03 13:43:50

标签: jquery datatables jquery-datatables

假设我在表格中有两行,只有一列:

hello mr red
goodbye morpheous

我希望能够过滤“hello morpheous”并让它返回两行。

默认情况下它不会这样做?它只返回包含“hello”的行。

我能做到吗?谢谢:)

1 个答案:

答案 0 :(得分:4)

您只需创建一个custom filter,如下所示:

$.fn.dataTableExt.afnFiltering.push(
  function(oSettings, aData, iDataIndex) {
      var filter = $("#example_filter input").val();
      filter = filter.split(' ');
      for (var f=0;f<filter.length;f++) {
          for (var d=0;d<aData.length;d++) {
              if (aData[d].indexOf(f)>-1) {
                  return true;
              }
          }
      }
   }
);

此自定义过滤器会分解在按空格分割的过滤器框中输入的值,然后循环显示所有行中的所有列 - 如果行的任何列匹配 any ,如“hello”或“morpheous”,这是匹配。

参见演示 - &gt; http://jsfiddle.net/ca6Zc/ 刚刚抓住了用于其他内容的早期演示,现在没有时间制作一个包含大量行的一列示例。但至少它证明该方法非常令人满意:)只需尝试在过滤器框中输入由空格分隔的不同字母,如e f 8等。