Я ищу в списке из 500 литов. используя следующий код. но сталкиваются с двумя проблемами. один, когда я нажимаю назад назад очень быстро после ввода чего-либо, он не фиксируется. а также поиск чувствителен к регистру, который я не хочу. пожалуйста, предложите улучшения в коде ниже:
$('#find_question').bind("keyup", function() {
searchWord = $(this).val();
console.log("input length",searchWord);
if (searchWord.length >= 0) {
$('#leftSection li').each(function(i, data) {
text = $(this).text();
if (text.match(RegExp(searchWord, 'i')))
$(this).show();
else
$(this).hide();
});
}
});
Попробуй это
СодержитIgnoreCase: Как сделать jQuery Содержит регистр без учета регистра, включая jQuery 1. 8+?
$.expr[':'].containsIgnoreCase = function (n, i, m) {
return jQuery(n).text().toUpperCase().indexOf(m[3].toUpperCase()) >= 0;
};
$function() {
$('#find_question').on("keyup", function() {
searchWord = $(this).val();
$('#leftSection li').hide();
if (searchWord.length >= 0) {
$('#leftSection li:containsIgnoreCase("'+searchWord+'")').show();
}
});
});