Фильтрация по текстовому полю
Всем привет! Народ, есть сайт: http://handmademania.ru/b2b/ Там я добавил текстовое поле в раздел "Мастер-классы" - поиск по мастер классам. Хочу, чтобы когда пользователь вводил текст, производился бы поиск по селектору .work-name элемента p , т.е. по названиям мастер-классов.
Пока реализовано вот как: поиск работает, но только ищет он по тем элементам, которые в данный момент видны на странице. Например если взять поисковую фразу "Флористика" - отфильтрует правильно, а вот если потом вписать "Candy" - то вообще ни одного элемента не будет найдено, т.к. искать будет только по 2-м из уже найденных. Приходится поисковую строку полностью очищать, и заново вводить "Candy" - чтобы нормально данные фильтровались. Помогите пожалуйста, как осуществить поиск по всем элементам класса .work-name ? Исходный код прямо на этой же странице: http://handmademania.ru/b2b/ Пример брал вот отсюда: http://ruseller.com/lessons.php?rub=32&id=1055 В идеале конечно хочу получить результат как вот в этом демо-примере, оттуда же: http://ruseller.com/lessons/les1055/0000113.htm |
Цитата:
Цитата:
|
Цитата:
и нафига стили тегу script? |
fenix_63,
трафик огромный у сайта!!! заменить ваш поиск на код ниже $(".filterinput").on("input", function() { var search = $.trim(this.value).split(/\s+/); console.log(search); $("#list .work-name").each(function(indx, el) { var text = el.textContent.toUpperCase(), show = search.some(function(a) { return text.indexOf(a.toUpperCase()) >= 0 }); $(el).parents(".work")[show ? "slideDown" : "slideUp"]() }) }); |
рони Спасибо большое!!!
Ваш вариант гораздо лучше, трафик большой, вскоре и этой проблемой займусь. Сейчас буду думать как найденые результаты отобразить вверху этого раздела, т.е. если например поисковая фраза "шоу" - чтобы результат отображался у верхнего края раздела, а не на своей исходной позиции, чтобы пользователь видел результат не прокручивая ниже. |
Часовой пояс GMT +3, время: 08:07. |