【问题标题】:JQuery: Make contains case insensitiveJQuery:使包含不区分大小写
【发布时间】:2011-10-20 22:32:28
【问题描述】:

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

    <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 新手,我看不到如何应用我找到的其他功能......

非常感谢,

安迪

【问题讨论】:

标签: jquery contains case-insensitive


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

【讨论】:

  • 对....我想我现在明白了。我已经添加了这个,现在我看到了如何调整我的代码。而且效果很好。谢谢@DotNET Ninja
【解决方案2】:
$('.productOptionsBlock label:contains("Size") , .productOptionsBlock label:contains("size")').replaceWith('<label>Please select your size:</label>');

【讨论】:

  • 谢谢约瑟夫 - 你的“特别”适合我的情况,但我认为我需要更进一步并使用 DotNET Ninja 的解决方案。
【解决方案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/

【讨论】:

    猜你喜欢
    • 2014-08-04
    • 2012-02-18
    • 2023-04-02
    • 2012-09-13
    • 2012-09-06
    • 2012-07-29
    • 2012-02-03
    • 2015-01-22
    相关资源
    最近更新 更多