【问题标题】:Case-insensitive contains [duplicate]不区分大小写的包含[重复]
【发布时间】:2013-01-16 09:35:54
【问题描述】:

可能重复:
Is there a case insensitive jQuery :contains selector?

我试图在网上到处寻找以不区分大小写的方式使用 contains jQuery 选择器的方法,但我真的找不到任何与最新版本的 jQuery 一起实际运行的方法。

非常感谢您!

【问题讨论】:

标签: jquery contains


【解决方案1】:

这是一个自定义实现:

$.expr[':'].icontains = $.expr.createPseudo(function( text ) {
    text = text.toLowerCase();
    return function (el) {
        return ~$.text(el).toLowerCase().indexOf( text );
    }
});

像这样使用它:

$(':icontains(SoMeThInG)');

这是小提琴:http://jsfiddle.net/CTg86/

【讨论】:

  • @Explosion Pills - ~ 在这种情况下给出了 $.text(el).toLowerCase().indexOf( text ) 的 1 的恭维。但为什么呢?
  • @Barmar - 很清楚。这意味着如果没有找到它将返回 0,如果找到则返回负数?
  • @techfoobar 是的,基本上变成 -1 虚假,其他任何东西都是非虚假的。
  • @Asad - 啊,对。好的。现在这是~ 的一个很酷的用法。我会写一个愚蠢的 if 或三元组。
猜你喜欢
  • 2014-08-04
  • 2012-02-18
  • 2023-04-02
  • 2011-10-20
  • 2012-02-03
  • 2015-01-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多