Вы можете изменить фильтр .contains
без учета регистра или создать свой собственный селектор.
jQuery.expr[':'].icontains = function(a, i, m) {
return jQuery(a).text().toUpperCase()
.indexOf(m[3].toUpperCase()) >= 0;
};
Это создаст новый селектор: icontains (или вы можете назвать его нечувствительным-содержащим, или любым другим, подходящимваше воображение).Его использование будет таким же, как и содержит: $('div:icontains("Stack")');
будет соответствовать:
<div>stack</div>
<div>Stack</div>
<div>StAcKOverflow</div>
Или переопределить существующий фильтр .contains
:
jQuery.expr[':'].contains = function(a, i, m) {
return jQuery(a).text().toUpperCase()
.indexOf(m[3].toUpperCase()) >= 0;
};
С этим на месте,
$("div:contains('John')");
выберет все три из этих элементов:
<div>john</div>
<div>John</div>
<div>hey hey JOHN hey hey</div>