Фильтрация по текстовому полю
Всем привет! Народ, есть сайт: 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, время: 12:41. |