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

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

Энди

3 ответа

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

Здесь мы определяем наше собственное выражение вместо того, чтобы изменять системное выражение с именем "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/

$('.productOptionsBlock label:contains("Size") , .productOptionsBlock label:contains("size")').replaceWith('<label>Please select your size:</label>');
Другие вопросы по тегам