2017-03-01 75 views
0

因此,我有一個網頁,在此頁面上我需要包含一個過濾器。我查看了一大堆過濾器插件,但是他們都沒有按照網頁建立的方式工作,所以我決定自己做。到目前爲止,我得到了一個基本的過濾器工作,但我不能將它用於姓氏或基本上任何有領先空間的東西。使用空格時輸入過濾器嵌套的div

例如,如果名稱是 Kevin Durst

然後過濾器顯示正確的DIV當我填寫:Kevin 但是當我填寫Durst它說明不了什麼。

這裏是代碼中的小提琴至今:http://jsfiddle.net/tV9RK/255/

HTML

<input class="search-individual-items" /> 

<div class="individual-items"> 
    <div class="individual"> 
     <div class="border"> 
     <div class="background"> 
      <div class="content"> 
      <h5 class="name">John Hendriks</h5>   
      </div>  
     </div>  
     </div> 
    </div> 
    <div class="individual"> 
     <div class="border"> 
     <div class="background"> 
      <div class="content"> 
      <h5 class="name">Kate Hendriks</h5>   
      </div>  
     </div>  
     </div> 
    </div> 
    <div class="individual"> 
     <div class="border"> 
     <div class="background"> 
      <div class="content"> 
      <h5 class="name">Triss Bufon</h5> 
      </div>  
     </div>  
     </div> 
    </div> 
</div> 

JS:

$('.search-individual-items').keyup(function() { 
    var value = $(this).val(); 
    var exp = new RegExp('^' + value, 'i'); 

    $('.individual-items .individual').each(function() { 
     var isMatch = exp.test($('.name', this).text()); 
     $(this).toggle(isMatch); 
    }); 
}); 

問題

我怎樣才能改變這樣的.js它也允許過濾姓氏?

我將不勝感激它看到它在小提琴中工作。

感謝大家的幫助。

+1

取出''^在你的正則表達式指示字符串的開頭 –

+0

嚴重......哦~~你​​一定已經笑得那麼厲害!所以它變成了'RegExp(value,'i');' – purple11111

+0

@Daniel_L是的,它只是在這個小提琴上試過:http://jsfiddle.net/tV9RK/257/ 你可以把它作爲答案,所以我可以接受它!非常感謝你。 PS:如果你認爲這個問題很明確,你可以請它升級。 – purple11111

回答

1

你的邏輯很好,但你的正則表達式中的^標誌使它看起來忽略姓氏的字符串的開頭。應該

var value = $(this).val(); 
var exp = new RegExp(value, 'i'); 
+0

謝謝你真的很完美這個代碼。我可以在大約8分鐘內接受。 – purple11111