2015-04-15 119 views
0

我正在为数据创建自定义过滤器。我想在精确的单词匹配上显示结果。例如我有以下数据。如果我们在搜索输入中键入“amit”,那么第一行应该显示哪一行正在工作,但是当我们输入“mit”时,不应该可见行。 fiddle显示并突出显示精确的单词匹配

<li><strong>my name is amit</strong>, address</li> 
<li><strong>my name is geeta</strong>, address</li> 
<li><strong>my name is xyz</strong>, address</li> 
+0

也许:_var val =“”+ this.value; _? –

+0

@WashingtonGuedes:不错的技巧,但当你第一次世界时,它不会工作 – Carlos

+0

它应该有所帮助:_if(li.text()。substring(0,val.length)!= val)val =“”+ val; _ –

回答

1

大厦斯里达尔的解决方案之上,我建了一个演示https://jsfiddle.net/sumL5eas/15/,也搜索开始的话:

在我的解决方案,首先检查文本是否以搜索词开始,如果是,则显示该项。否则,它将使用" " + searchTerm搜索文本。

$('.inp').keyup(function(){ 

    var searchText = $(this).val(); 

    $('ul > li').each(function(){ 

     var currentLiText = $(this).text(); 
     var showCurrentLi = currentLiText.indexOf(searchText) == 0; 
     if(!showCurrentLi) 
      showCurrentLi = currentLiText.indexOf(" " + searchText) !== -1; 

     $(this).toggle(showCurrentLi); 

    });  
}); 
1

试试这个代码

$(function(){ 

    $('.inp').keyup(function(){ 

     var searchText = $(this).val(); 

     $('ul > li').each(function(){ 

      var currentLiText = $(this).text(), 
       showCurrentLi = currentLiText.indexOf(searchText) !== -1; 

      $(this).toggle(showCurrentLi); 

     });  
    }); 

}); 

链接:http://jsfiddle.net/sumL5eas/5/

+0

不工作。当你从世界中间键入文本然后它应该隐藏li – Carlos

+0

我认为使用长度是可能的.. – sheshadri

+0

@amit它的工作原理当你添加一个空格'“”+ searchText' https://jsfiddle.net/sumL5eas/ 10/ – renakre