javascript(jQuery含む)を利用して、文字列のAND検索(絞り込み)をしたいと考えています。
ユーザが入力したキーワードで、HTML内に掲載している情報を検索し、一致するものがある場合はその該当情報(リスト)を表示するということがやりたいです。
例えばキーワードが、 「abcd efghij」の場合、
「abcd」と「efghij」両方に該当する情報(リスト)を表示させたいです。
OR検索や、セレクトボックス対応のものは散見されますが、AND検索(絞り込み)は、あまり情報がなかったものですから質問させていただきました。
知識不足ですがご教授よろしくお願いします。
※尚、利用する際の環境はオフライン環境を想定しています。
現状のソースコード
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>TEST</title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <!-- <script src="js/jquery-3.5.1.min.js"></script> --> <script> // Key Words Search $(function(){ $('#buttons01').on("click",function(){ var reg = $('#search').val(); var word = reg.toLowerCase(); var words = word.split(" ");$('#list li').each(function(){ var list = $(this); list.hide(); $('p', this).each(function() { var txt = $(this).html(); var txts = txt.toLowerCase(); for(var i = 0; i < words.length; i++) { if(txts.search(words[i]) != -1) { list.show(); } } }); }); });
});
</script>
</body> </html><input type="text" id="search"> <input type="submit" value="検索" id="buttons01"> <ul id="list"> <li><p>abcd efghij</p></li> <li><p>uvwxyz hijklm</p></li> <li><p>jklmnop stuvwx</p></li> <li><p>hijklm ghijklmn</p></li> <li><p>opqrst bcdefg</p></li> <li><p>efghij jklmnop</p></li> <li><p>abcd bcdef</p></li> <li><p>cdefg hijklm</p></li> <li><p>bcdef stuvw</p></li> </ul>
回答4件
あなたの回答
tips
プレビュー