$('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 или при большом количестве товаров и быстром вводе текста будут заметные тормоза. Или хотя-бы немножко оптимизировать - не скрывать все подряд, не искать текст в тех, что уже скрыты, и так далее.