2011-01-20 7 views
0

"jquery search function"を作成しようとしていますが、複数の単語を使用して結果を並べ替えることができます。Jquery検索機能を使用するcontains

誰かが私にそれを動作させる方法を教えてもらえますか?

これは私が得たものである:

$(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。 –

答えて

0

あなたはこの試しください 含まれていて、スペースを置き換えることにより、jqueryのセレクタ文字列を生成することができます:http://www.jsfiddle.net/RUF4P/4/(タイプLoremのイプサム)

:ポスト@をチェック

<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> 

<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> 

テスト

+0

Cyber​​nateありがとう、これは動作します。しかし、各単語の後に "スペース"を入力すると、検索機能がすべてのdivからクラスを削除し、div広告が非表示になります...これは良いスタートです! – Hakan

+0

私の悪い、実際には動作しません。もう少し試して質問を更新します。 – Hakan

+0

私は投稿を更新し、jsfiddleへのリンクも投稿しました。これを試してください:http://www.jsfiddle.net/RUF4P/4/ – Chandu