2

これらのスパンがあるとしましょう:

<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() 関数を使用できることはわかっていますが、どこに適用するかはわかりません...

スパンの元のフォーマットを維持したいので、それらを小文字に変換して THEN 検索することは実行可能なオプションではありません。

助言がありますか?

4

3 に答える 3

2

使用する必要があります.filter()

$('span').filter(function() {
    return $(this).text().toLowerCase().indexOf('c2alerts') !== -1;
}).addClass('yellow');
于 2013-04-19T18:44:24.110 に答える
1

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');
于 2013-04-19T18:46:19.187 に答える
0

これを行う最も簡単な方法は次のとおりだと思います。

$("span").each(function(){
    if($(this).text().toLowerCase() == "c2alerts") {
        $(this).addClass("yellow");
    }
});
于 2013-04-19T18:53:11.147 に答える