jquery过滤不区分大小写

时间:2016-02-18 12:03:17

标签: jquery find filtering

我找到了这个过滤脚本:

jsfiddle.net/Zhd2X/574/

尝试在第一个表格中按 f F - 列布尔值。在原始版本中,示例仅适用于 f ,但我在行号中添加了 .toLowerCase() 。 17。 但是当您在第二个表 - 列专业中按 g G 时,我的第一次更新过滤无效。我必须换行号。 18,但我不知道......

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

您应该通过在脚本中添加以下代码来创建: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.