【问题标题】:Search Element for Case Insensitive String不区分大小写字符串的搜索元素
【发布时间】:2013-04-19 18:43:05
【问题描述】:

假设我有这些跨度:

<span>c2alerts</span>
<span>C2alerts</span>
<span>c2Alerts</span>
<span>c2aLerts</span>
<span>c2alErts</span>
<span>c2aleRts</span>
<span>c2alerTs</span>
<span>c2alertS</span>

我想找到每一个“c2alerts” 我熟悉搜索特定字符串:

$("span:contains('c2alerts')").addClass('yellow');

但是如何在不重复编码的情况下搜索所有这些? 我知道我可以使用 toLowerCase() 函数,但我不确定我会在哪里应用它...

我想保持跨度的原始格式,因此将它们转换为小写然后搜索将不是一个可行的选择。

有什么建议吗?

【问题讨论】:

    标签: jquery string lowercase


    【解决方案1】:

    你必须使用.filter():

    $('span').filter(function() {
        return $(this).text().toLowerCase().indexOf('c2alerts') !== -1;
    }).addClass('yellow');
    

    【讨论】:

      【解决方案2】:

      您可以使用自定义行为推出自己的 contains

      jQuery.expr[":"].contains_ignoreCase = jQuery.expr.createPseudo(function(arg) {
        return function( elem ) {
           return jQuery(elem).text().toLowerCase().indexOf(arg.toLowerCase()) >= 0;
        };
      });
      
      
      $("span:contains_ignoreCase('c2alerts')").addClass('yellow');
      

      【讨论】:

        【解决方案3】:

        我认为最简单的方法是:

        $("span").each(function(){
            if($(this).text().toLowerCase() == "c2alerts") {
                $(this).addClass("yellow");
            }
        });
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-11-05
          • 2011-12-20
          • 1970-01-01
          • 2014-07-07
          • 1970-01-01
          • 2012-04-28
          • 1970-01-01
          相关资源
          最近更新 更多