前端很多时候要实现模糊查询的效果,之前在网上搜模糊查询的时候,发现方法都比较麻烦,于是便写了这个比较简单的模糊查询。
上面是简单的页面,要求列表内容根据输入框的值进行匹配。
页面结构:
<div class="search_box"><input type="text" placeholder="请输入您要查找的内容" autocomplete="off" id="search_input"></div>
<ul class="search_container">
<li>三国演义</li>
<li>张三</li>
<li>12345</li>
<li>abcdef</li>
</ul>
通过filter的方法可以很轻松的实现所要的效果,下面是方法:
function slurSearch(){
var val = $("#search_input").val().trim();
$(".search_container li").each(function(){
$(this).hide().filter(":contains('"+val+"')").show();
})
}
$("#search_input").on("input propertychange",function(){
slurSearch();
})
其中,"input propertychange"是为了解决在移动端input的chang事件不灵敏。