Jquery contains поиск в div
Данный код всегда будет работать, если есть хотя бы 1 символ в строке. Как можно изменить код, чтобы при вводе каждой буквы изменялся результат поиска?
Код:
<div class="content"> $('#suggest').bind('keyup onchange',function(){ var Search = $('#suggest').val(); var Result = $(".list-block .item-link:contains("+Search+")"); console.log("Кол-во результатов:" + Result.length); console.log("Кол-во символов в input:" + Search.length); for(var i = 0; i < Result.length; i++){ if(Search != '' && Search.length > 0){ $(".list-block .item-link:contains("+Search+")").addClass('on'); $(".list-block .item-link").hide(); $('.on').show(); } else { $(".list-block .item-link:contains("+Search+")").removeClass('on'); $(".list-block .item-link").show(); } } }) |
qumo,
надо событие 'input' использовать вместо 'keyup' и 'onchange'. |
Спасибо за упрощение кода=) А по самому сабжу есть что?=)
|
qumo,
1) Почему .bind? вместо .bind использовать .on 2) Search != '' && Search.length > 0 Можно ж просто Search !== '' Но если тебе нужна защита от ввода пробелов то надо регулярное выражение и тестить инпут.val() 3) Вместо родителя (то есть лист-блок) $(".list-block .item-link:contains("+Search+")") Можно использовать контекст $('.item-link:contains('+Search+')', '.list-block') |
Спасибо за информацию=) Сейчас мне главное, чтобы при вводе каждой буквы изменялся результат поиска=) Остальное не критично=)
|
Цитата:
по ссылке нужный вам скрипт, достаточно заменить селекторы на ваши |
qumo,
Ты достал меня $('#suggest').on('input', function() { var search = $('#suggest').val(); if (search !== '') { $('.item-title').not(':contains('+search+')').parents('li').hide(); $('.item-title:contains('+search+')').parents('li').show(); } else { $('.item-title').parents('li').show(); } }); И это.. контекст можно было в старых jquery указывать(на которых я сидел) - сейчас уже нет |
Спасибо, ребята, за помощь=)
|
Часовой пояс GMT +3, время: 11:18. |