2011-01-20 155 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