JQuery: Make содержит регистр без учета регистра - PullRequest
2 голосов
/ 05 августа 2011

Я смотрел другие решения этой проблемы на этом сайте, но не могу понять, как адаптироваться к моей ситуации. У меня есть следующий код, который ищет метку, содержащую «Размер», но он также должен найти «размер».

    <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, я не понимаю, как применить другие функции, которые я нашел ...

Большое спасибо,

Andy

Ответы [ 3 ]

3 голосов
/ 17 июня 2012

Здесь мы определяем наше собственное выражение вместо того, чтобы менять системное выражение с именем «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 голос
/ 05 августа 2011
$('.productOptionsBlock label:contains("Size") , .productOptionsBlock label:contains("size")').replaceWith('<label>Please select your size:</label>');
1 голос
/ 05 августа 2011
$.expr[':'].Contains = function(x, y, z){
    return jQuery(x).text().toUpperCase().indexOf(z[3].toUpperCase())>=0;
};
...