• JQuery, лайв поиск по элементам со скрытием?

    Stalker_RED
    @Stalker_RED
    $('input').on('input', function(){
      $('li').hide() // скрыть все
      $('li:contains('+this.value+')').show() // показать те, что содержат искомый текст
    })


    Если нужно искать без учета регистра:
    // добавляем в jQ новый селектор
    $.expr[":"].containsignorecase = $.expr.createPseudo(function(arg) {
        return function( elem ) {
            return $(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0;
        };
    });

    и используем его вместо обычного
    ...
      $('li:containsignorecase('+this.value+')').show() 
      ...


    Возмжно, стоит добавить throttle/debounce или при большом количестве товаров и быстром вводе текста будут заметные тормоза. Или хотя-бы немножко оптимизировать - не скрывать все подряд, не искать текст в тех, что уже скрыты, и так далее.
    Ответ написан
    1 комментарий