2011-01-01 6 views
1

jQueryで:containsセレクタの大文字と小文字を区別しないバージョンを使用するソリューションを探しています。私は、スタックオーバーフローの上に、ここでこれらの2つのポストを見つけました:jQuery.exprコードはどこに置くのですか?

Is there a case insensitive jQuery :contains selector?
How do I make jQuery Contains case insensitive, including jQuery 1.8+?

したがって、基本的解決策はこれです:

jQuery.expr[':'].Contains = function(a,i,m){ 
    return jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase())>=0; 
}; 

私の唯一の問題は、私はこれを使用して行う方法ですか?このコードを指定する場所はどこですか? 私のヘッダーにjQueryをロードした後、script.jsファイルを読み込み、DOM準備関数を宣言します。私はこのコードをDOM準備関数の外に置いていますが、:containsセレクタの振る舞いは何も変わりません。

答えて

3

あなたはjqueryのをロードした後、コードのこの部分を入れた場合、あなたは1つが含まれており、1(大文字と小文字を区別しない)icontainsセレクタがあります:

$.extend($.expr[':'], { 
     // case insensitive version of :contains 
     icontains: function(a,i,m){ 
      return (a.textContent||a.innerText||jQuery(a).text()||""). 
       toLowerCase().indexOf(m[3].toLowerCase())>=0; 
     } 
    }); 
関連する問題