2011-08-05 88 views
2

我已經看過此網站上的其他解決方案,但無法看到如何適應我的情況。我有以下代碼查找包含「大小」的標籤,但它也需要查找「大小」。JQuery:Make包含大小寫不敏感

<script type="text/javascript"> 
     $(document).ready(function() {              

      if ($('.productOptionsBlock label:contains("Size")').length > 0) { 
       $('.productOptionsBlock label:contains("Size")').replaceWith('<label>Please select your size:</label>'); 
      } 

     }); 
    </script>  

作爲一個jQuery紐比,我看不出如何申請我發現其他功能...

非常感謝,

安迪

+0

的重複:有一個區分大小寫的jQuery:包含選擇器?](http://stackoverflow.com/q/187537/239241)這是我在谷歌的'jquery包含大小寫不敏感'的第一個結果 – betamax

+0

對不起betamax - 我只是需要更多的手持。 – AndyiBM

回答

1
$.expr[':'].Contains = function(x, y, z){ 
    return jQuery(x).text().toUpperCase().indexOf(z[3].toUpperCase())>=0; 
}; 
+0

對......我想我現在明白了。我已經添加了這個,現在我看到如何調整我的代碼。它效果很好。謝謝@DotNET Ninja – AndyiBM

1
$('.productOptionsBlock label:contains("Size") , .productOptionsBlock label:contains("size")').replaceWith('<label>Please select your size:</label>'); 
+0

謝謝約瑟夫 - 你的'特別'適合我的情況,但我認爲我需要進一步使用DotNET Ninja的解決方案。 – AndyiBM

3

在這裏,我們正在定義我們自己的表達式,而不是改變系統的名稱爲「contains-ci」(包含對大小寫不敏感):

$.extend($.expr[":"], 
{ 
    "contains-ci": function(elem, i, match, array) 
    { 
     return (elem.textContent || elem.innerText || $(elem).text() || "").toLowerCase().indexOf((match[3] || "").toLowerCase()) >= 0; 
    } 
}); 

在我的博客張貼在這裏你可以找到一些例子在此表達的頂級作品:

http://blogs.digitss.com/javascript/jquery-javascript/jquery-case-insensitive-contains-expression/

http://blogs.digitss.com/javascript/jquery-javascript/implementing-quick-table-search-using-jquery-filter/