在这里我编写代码,所有人名都来自Facebook API.它在灯箱上显示.现在我想使用
javasciprt / jquery实现搜索功能.你能帮我解决一下我应该如何实现搜索功能?
<div> <input type="text" id="search-criteria"/> <input type="button" id="search" value="search" onClick="tes();"/> </div> <fieldset> <legend>Invite Facebook Friend</legend> <div class="fbBox"> <img src="images/User.png" class="fbimg" /> <div class="fix"><label for="check-2" class="left"> James </label></div> <input type="checkBox" name="fb" id="check-1" value="action" class="leftcx"/> </div> <div class="fbBox"> <img src="images/User.png" class="fbimg" /> <div class="fix"><label for="check-2" class="left">Alan </label></div> <input type="checkBox" name="fb" id="check-2" value="comedy" class="leftcx"/> </div> <div class="fbBox"> <img src="images/User.png" class="fbimg" /> <div class="fix"><label for="check-3" class="left"> Mathew </label></div> <input type="checkBox" name="fb" id="check-3" value="epic" class="leftcx"/> </div>
解决方法
$("#search-criteria").on("keyup",function() { var g = $(this).val(); $(".fbBox .fix label").each( function() { var s = $(this).text(); if (s.indexOf(g)!=-1) { $(this).parent().parent().show(); } else { $(this).parent().parent().hide(); } }); });
或更好的方式:
$("#search-criteria").on("keyup",function() { var g = $(this).val().toLowerCase(); $(".fbBox .fix label").each(function() { var s = $(this).text().toLowerCase(); $(this).closest('.fbBox')[ s.indexOf(g) !== -1 ? 'show' : 'hide' ](); }); });