В базовом jQuery есть метод, который может фильтровать данные по их содержимому — я имею ввиду метод — или же фильтр — contains.
Но в нем ест одна проблема, которая делает его использование неполноценным и даже не нужным. Он регистрозависимый — т.е. строка "Privet" не равна строке "privet". Для страниц, которые предоставляют подобную фильтрацию простым пользователям — это недопустимый вариант. Человек, который не программист, никогда не поймет разницы в приведенных выше двух строках.
Поэтому предлагаю найденный в интернете вариант, который мне отлично помог.
jQuery.expr[":"].Contains = jQuery.expr.createPseudo(function(arg) {
return function( elem ) {
return jQuery(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0;
В этом примере мы создали новый фильтр, назвав его Containts — вы можете назвать его, как Вам угодно — я исходил из мысли о названии с большой буквы, т.к. данный метод не будет учитывать регистр.
Его использование — типичное для jQuery:
$('div:Contains("some TeXt")').addClass('highlight');