2014-01-17 96 views
0

我在500 li列表中搜索。使用下面的代碼。但面臨兩個問題。一個當我在輸入東西后非常快速地按下退格鍵時,它不會被捕獲。並且搜索區分大小寫,我不想要。請建議在下面的代碼的改進:在LI中使用jquery進行搜索

$('#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(); 
     }); 
    } 
}); 

回答

1

試試這個

的containsIgnoreCase來自How do I make jQuery Contains case insensitive, including jQuery 1.8+?

Live Demo

$.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(); 
    } 
    }); 
});