jquery 过滤不区分大小写

jquery filtering case insensitive

我找到了这个过滤脚本:

jsfiddle.net/Zhd2X/574/

尝试在第一个 table - 布尔值列中按 fF。在原始版本中,示例仅适用于 f,但我在第 1 行添加了 .toLowerCase()。 17. 但是,当您在第二个 table 中按 gG - 专栏时,过滤在我的第一次更新中不起作用。我必须更改行号。 18岁,但我不知道...

您需要在过滤前将 <td>s 的文本设为小写。目前您只是将过滤器输入的值设为小写。

var criteria = this.value.toLowerCase();

table.find(el).filter(function(_, td) {
    return $(td).text().toLowerCase().indexOf(criteria) == -1;
}).parent().hide();

Here's an updated fiddle

您应该通过将以下代码添加到您的脚本来创建 :contains JQuery 选择器的不区分大小写的变体。我把它命名为casecontains.

jQuery.expr[':'].casecontains = function(a, i, m) { 
  return jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase()) >= 0; 
};

之后,您可以将行 17 替换为以下内容:

var criteria = ":casecontains('"+$(this).val()+"')";

请注意,我刚刚将 :contains 替换为 :casecontains。此外,不再需要转换为小写。

Your updated fiddle.