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/
$('.productOptionsBlock label:contains("Size") , .productOptionsBlock label:contains("size")').replaceWith('<label>Please select your size:</label>');