jquery 过滤不区分大小写
jquery filtering case insensitive
我找到了这个过滤脚本:
尝试在第一个 table - 布尔值列中按 f 和 F。在原始版本中,示例仅适用于 f,但我在第 1 行添加了 .toLowerCase()
。 17.
但是,当您在第二个 table 中按 g 或 G - 专栏时,过滤在我的第一次更新中不起作用。我必须更改行号。 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
。此外,不再需要转换为小写。
我找到了这个过滤脚本:
尝试在第一个 table - 布尔值列中按 f 和 F。在原始版本中,示例仅适用于 f,但我在第 1 行添加了 .toLowerCase()
。 17.
但是,当您在第二个 table 中按 g 或 G - 专栏时,过滤在我的第一次更新中不起作用。我必须更改行号。 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
。此外,不再需要转换为小写。