Поисковый ввод с фильтром jquery работает только с частью слова ⇐ Jquery
-
Anonymous
Поисковый ввод с фильтром jquery работает только с частью слова
У меня есть два поля выбора и поле поиска, которые фильтруют некоторые элементы div. Входные данные select работают должным образом. В поле поиска должны отображаться элементы div, содержащие текст в поле поиска, но это работает, только если, например, «Ане», а не «Джейн».
Может ли кто-нибудь здесь увидеть проблему?
$(document).ready(function() { // Изначально скрываем все элементы div. $('.col.kontaktpersoner').hide(); // Показывать соответствующие элементы div, когда пользователь вводит текст в поле поиска и выбирает отдел и/или местоположение. $('#search-field, #departments, #locations').on('изменение ввода', function() { var searchTerm = $('#search-field').val().toLowerCase().trim(); var отдел = $('#departments').val(); var location = $('#locations').val(); // Создаем селектор для соответствующих элементов div. var selector = '.col.kontaktpersoner'; если (отдел) { селектор += '.' + отдел; } если (местоположение) { селектор += '.' + местоположение; } // Найти все элементы div, содержащие поисковый запрос. var filteredDivs = $(selector).filter(':contains("' + searchTerm + '")'); // Если нет элементов div, содержащих искомый термин, то найти все элементы div, содержащие искомый термин, как целое слово. если (filteredDivs.length === 0) { filteredDivs = $(selector).filter(':contains(\\b' + searchTerm + '\\b)'); } // Если по-прежнему нет элементов div, содержащих поисковый запрос, найти все элементы div, содержащие поисковый запрос в качестве префикса. если (filteredDivs.length === 0) { filteredDivs = $(selector).filter(':contains("' + searchTerm + '%")'); } // Показать отфильтрованные элементы div. filteredDivs.show(); // Скрываем все остальные элементы div. $('.col.kontaktpersoner').not(filteredDivs).hide(); }); }); Выбрать отдел Продажи Маркетинг Инжиниринг Выбрать местоположение Нью-Йорк Лондон Токио Джон Доу
Джейн Доу
Питер Паркер
У меня есть два поля выбора и поле поиска, которые фильтруют некоторые элементы div. Входные данные select работают должным образом. В поле поиска должны отображаться элементы div, содержащие текст в поле поиска, но это работает, только если, например, «Ане», а не «Джейн».
Может ли кто-нибудь здесь увидеть проблему?
$(document).ready(function() { // Изначально скрываем все элементы div. $('.col.kontaktpersoner').hide(); // Показывать соответствующие элементы div, когда пользователь вводит текст в поле поиска и выбирает отдел и/или местоположение. $('#search-field, #departments, #locations').on('изменение ввода', function() { var searchTerm = $('#search-field').val().toLowerCase().trim(); var отдел = $('#departments').val(); var location = $('#locations').val(); // Создаем селектор для соответствующих элементов div. var selector = '.col.kontaktpersoner'; если (отдел) { селектор += '.' + отдел; } если (местоположение) { селектор += '.' + местоположение; } // Найти все элементы div, содержащие поисковый запрос. var filteredDivs = $(selector).filter(':contains("' + searchTerm + '")'); // Если нет элементов div, содержащих искомый термин, то найти все элементы div, содержащие искомый термин, как целое слово. если (filteredDivs.length === 0) { filteredDivs = $(selector).filter(':contains(\\b' + searchTerm + '\\b)'); } // Если по-прежнему нет элементов div, содержащих поисковый запрос, найти все элементы div, содержащие поисковый запрос в качестве префикса. если (filteredDivs.length === 0) { filteredDivs = $(selector).filter(':contains("' + searchTerm + '%")'); } // Показать отфильтрованные элементы div. filteredDivs.show(); // Скрываем все остальные элементы div. $('.col.kontaktpersoner').not(filteredDivs).hide(); }); }); Выбрать отдел Продажи Маркетинг Инжиниринг Выбрать местоположение Нью-Йорк Лондон Токио Джон Доу
Джейн Доу
Питер Паркер
Мобильная версия