2011-01-20 128 views
0

我想創建一個「jQuery的搜索功能」,我希望能夠使用多個單詞來排序結果。jQuery的搜索功能使用包含

有人能告訴我如何使它工作嗎?

這是我得到:

$(document).ready(function(){ 

$('.qid').keyup(function() { 
var keyword = $(this).val().toLowerCase().split(" "); 

$(".q").removeClass('show'); 
$(".q:contains('"+ keyword[0] +"'):contains('"+ keyword[1] +"'):contains('"+ keyword[2] +"'):contains('"+ keyword[3] +"')").addClass('show'); 
if ($('.qid').val() == '') 
{ 
$('.q').removeClass('show'); 
} 
}); 

}); 
+2

@Jacob問了9個問題,沒有提供答案和零接受? **同意**和+1。 – 2011-01-20 22:34:32

回答

0

您可以通過替換空間產生的jQuery選擇字符串包含 試試這個:

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $('.qid').keyup(function() { 
      var keyword = $(this).val().replace(/\s+/g, " ").replace(/\s+$|^\s+/g, ""); 
      var containsString = keyword; 
      $(".q").removeClass('show'); 
         containsString = ".q:contains("+containsString+")".replace(".q:contains()",""); 
      console.log(containsString); 
      $(containsString).addClass('show'); 
      if ($('.qid').val() == ''){ 
       $('.q').removeClass('show'); 
      } 
     }); 
}); 

</script> 

測試:

<div>John Resig</div> 
<div>George Martin</div> 
<div>Malcom Cybernate Sinclair</div> 
<div>J. Ohn</div> 


<script> 
    var baseText = "John Cybernate" 
    var containsString = baseText.replace(" ", " ,div:contains("); 
    $("div:contains(" + containsString + ")").css("text-decoration", "underline"); 
</script> 

檢查後@:http://www.jsfiddle.net/RUF4P/4/(類型Lorem存有)

+0

謝謝Cyber​​nate,這個工程。但是當我在每個單詞後面的「空格」中輸入時,searchfunction會從所有div中刪除該類,並隱藏divs ...這是一個好開始! – Hakan 2011-01-20 22:51:43