【问题标题】:jquery filtering case insensitivejquery过滤大小写不敏感
【发布时间】:2016-05-30 14:09:30
【问题描述】:

我找到了这个过滤脚本:

jsfiddle.net/Zhd2X/574/

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

【问题讨论】:

  • 您可以发布当前脚本和原始脚本(在您进行更改之前)吗?即使没有案例问题,它也无法正常工作。也请考虑rewriting your question

标签: jquery find filtering


【解决方案1】:

您需要在过滤之前将<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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-11
      • 1970-01-01
      • 1970-01-01
      • 2017-02-21
      • 1970-01-01
      相关资源
      最近更新 更多