2011-07-24 78 views
1

在下面的「開發函數」中,我試圖將字符串轉換爲小寫字母,以便在「html」變量中的字符串與span標記的內容之間進行小寫字母比較。與jQuery不區分大小寫比較?

我必須做一些錯誤的嘗試跨度爲小寫轉換,因爲亮點類似乎並沒有被安裝在設備功能...

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

我想你錯過了來電.html()

考慮您的第一個電話:

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

和你的第二個:

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

也就是說,你可能想:

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

+1就是這樣!一直在看這個代碼。輕鬆修復。 –

+0

不要忘記接受在這種情況下的答案) –

+0

謝謝Fedor。你必須等待至少6分鐘:-) –

0

我看來,像你打開跨度含量爲小寫(2號線)後調用.html()功能(3號線),從而導致混合案例字符串。試試這個:

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