jQuery:实时搜索

时间:2014-02-20 01:15:26

标签: jquery

我正在尝试构建实时搜索项目,但我不确定我的代码有什么问题。如果我搜索“AAA - AAA”结果显示但是当我搜索“TOF0042 - 文本更新+调整大小”时,结果不会显示。

你能帮帮我吗?

  • HTML代码
<input type="text" id="search-project" name="search-project">
<ul class="list-porject">
    <li>AAA - AAA</li>
    <li>BBB - BBB</li>
    <li>0546 - Testing</li>
    <li>TOF0042 - text update + resize</li>
</ul>
  • jQuery Code
  

(函数($){

$(document).ready(function() {
    $("#search-project").keyup(function(){        
       var filter = $(this).val();                
       $(".list-porject li").each(function(){
           if ($(this).text().search(new RegExp(filter, "i")) < 0) {
         $(this).addClass('hidden');
         } else {
               $(this).removeClass('hidden');
    } 
       });
     

});       })})(jQuery的);

  • CSS
  

.hidden {display:none; }

演示:Fiddle

1 个答案:

答案 0 :(得分:4)

在“TOF0042 - 文本更新+调整大小”中,您有字符“+”,这是正则表达式中的量词。

要搜索“TOF0042 - 文本更新+调整大小”,您需要检查字符串中的特殊字符。在这种情况下,+应为\+

How to escape special characters using regular expressions

More info about Javascript regular expressions

工作demo