JQuery:Make包含不区分大小写

时间:2011-08-05 14:30:09

标签: jquery contains case-insensitive

我在这个网站上看过其他解决方案,但看不出如何适应我的情况。我有以下代码查找包含'Size'的标签,但它也需要找到'size'。

    <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 newby,我看不出如何应用我发现的其他功能......

非常感谢,

安迪

3 个答案:

答案 0 :(得分: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/

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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