2011-07-24 9 views
1

以下の "dev関数"では、 "html"変数の文字列とspanタグの内容の小文字と小文字の比較を実行するために、文字列を小文字に変換しようとしています。jQueryとの比較はできませんか?

ハイライトクラスは添付されていないよう以来、小文字にスパンを変換しようとしたとき、私はdevの関数に間違った何かをしなければなりません

...

var html = jQuery('#content').html().toLowerCase(); 

    //existing function works when the span is preset to lowercase 
    jQuery(".my_kw").find("span").filter(function() { 
     return html.indexOf(jQuery(this).html()) != -1; 
     }).each(function() { 
      jQuery(this).addClass('highlight'); 
     }); 
    } 

    //dev function. Trying to allow for spans to be mixed case, and force to lowercase only for comparison 
    jQuery(".my_kw").find("span").filter(function() { 
     var kw = jQuery(this).toLowerCase(); 
     return html.indexOf(kw.html()) != -1; 
     }).each(function() { 
      jQuery(this).addClass('highlight'); 
     }); 
    } 

答えて

6

私は、あなたが不足していると思います

return html.indexOf(jQuery(this).html()) != -1; 

と2番目:

あなたの最初の呼び出しを検討 .html()

に呼び出します

var kw = jQuery(this).toLowerCase(); 

あなたはおそらくしたい、です:あなたは、それによって混合が得られ、下部ケース(2行目)にスパンコンテンツを投入後.html()機能(3行目)を呼び出すように

var kw = jQuery(this).html().toLowerCase(); 
return html.indexOf(kw) != -1; 
+0

+1それでした!このコードを長く見ています。簡単な修正。 –

+0

このケースでは答えを受け入れることを忘れないでください) –

+0

ありがとうございます。あなたは少なくとも6分待たなければなりません:-) –

0

は私には思えますケースストリング。試してみてください:

var kw = jQuery(this).html().toLowerCase(); 
return html.indexOf(kw) != -1; 
関連する問題