jQuery实现模糊查询的方法分析


Posted in jQuery onMay 10, 2018

本文实例讲述了jQuery实现模糊查询的方法。分享给大家供大家参考,具体如下:

需求:list列表内容很多,用户需要找出列表内容中的某些条目,只有当与用户输入值匹配的条目才显示出来。(后台无分页,直接异步接口返回数据添加形成的内容列表)

虽然可以通过传参再调用查询出来,但这里主要记录的是前端处理进行模糊查询而无需再次调用接口的实现方法。

html部分:

<div class="search-form">
    <input type="text" placeholder="请输入关键词">
    <span class="icon-clear"></span>
</div>
<div class="content">
  <div class="title row no-gutter">
    <div class="col-20">列表一</div>
    <div class="col-20">列表二</div>
    <div class="col-20">列表三</div>
    <div class="col-20">列表四</div>
    <div class="col-20">列表五</div>
  </div>
  <div class="list-content">
    <ul>
      <li>
        <div class="code">00001</div>
        <div class="name">内容1</div>
        <div>内容2</div>
        <div>内容3</div>
        <div>内容4</div>
      </li>
      <li>……</li>
    </ul>
  </div>
</div>

js部分:

queryList: function(){
  $(".search-input").on("input propertychange", function() {
    var queryStr = $.trim($(".search-input").val());
    if(queryStr === ''){
      $(".list-content li").show();
    }else{
    // 以下是匹配某些列的内容,如果是匹配全部列的话就把find()和.parent()去掉即可
      $(".list-content li").hide().find(".code, .name").filter(":contains('"+queryStr+"')").parent("li").show();
      //$(".list-content").refresh(); //重新刷新列表把隐藏的dom结构去掉。
    }
  });
}

分析:以上即实现了前端js的模糊查询功能啦,哈哈。代码中监听事件中多加了input,据说是为兼容iOS的,具体没测试,有哪位大神测试了可以告知一声哈,谢谢了。

还有个问题就是,以上实现方法,当列表内容多大几千条数目或者更多时,表单输入时会出现卡顿的情况,因为要通过js操作大量的DOM结构啊(隐藏或显示),PC上或许情况还没有那么严重,在手机上测试时那真的是“怎一个卡字了得”,如果哪位大神有更好的法子,还望加以完善!

希望本文所述对大家jQuery程序设计有所帮助。

jQuery 相关文章推荐
为Jquery EasyUI 组件加上清除功能的方法(详解)
Apr 13 jQuery
jQuery复合事件结合toggle()方法的用法示例
Jun 10 jQuery
jQuery扩展_动力节点Java学院整理
Jul 05 jQuery
jQuery实现倒计时功能 jQuery实现计时器功能
Sep 19 jQuery
vue+jquery+lodash实现滑动时顶部悬浮固定效果
Apr 28 jQuery
JS与jQuery实现ListBox上移,下移,左移,右移操作功能示例
May 31 jQuery
jQuery实现的老虎机跑动效果示例
Dec 29 jQuery
jquery无缝图片轮播组件封装
Nov 25 jQuery
jQuery操作事件完整实例分析
Jan 10 jQuery
jquery向后台提交数组的代码分析
Feb 20 jQuery
JavaScript或jQuery 获取option value值方法解析
May 12 jQuery
jquery插件实现轮播图效果
Oct 19 jQuery
jQuery简单实现的HTML页面文本框模糊匹配查询功能完整示例
May 09 #jQuery
Vue引入jquery实现平滑滚动到指定位置
May 09 #jQuery
JS文件中加载jquery.js的实例代码
May 05 #jQuery
详解使用jQuery.i18n.properties实现js国际化
May 04 #jQuery
基于jQuery.i18n实现web前端的国际化
May 04 #jQuery
[原创]jquery判断元素内容是否为空的方法
May 04 #jQuery
jQuery实现每隔一段时间自动更换样式的方法分析
May 03 #jQuery
You might like
随机广告显示(PHP函数)
2006/10/09 PHP
PHP反转字符串函数strrev()函数的用法
2012/02/04 PHP
php自定义加密与解密程序实例
2014/12/31 PHP
jQuery 自动增长的文本输入框实现代码
2010/04/02 Javascript
javascript中删除指定数组中指定的元素的代码
2011/02/12 Javascript
iframe异步加载实现点击左边菜单加载右边内容实例讲解
2013/03/04 Javascript
Javascript代码在页面加载时的执行顺序介绍
2013/05/03 Javascript
jQuery在iframe中无法弹出对话框的解决方法
2014/01/12 Javascript
jQuery中has()方法用法实例
2015/01/06 Javascript
AngularJS实现星星等级评分功能
2016/09/24 Javascript
禁用backspace网页回退功能的实现代码
2016/11/15 Javascript
vue获取DOM元素并设置属性的两种实现方法
2017/09/30 Javascript
使用cookie绕过验证码登录的实现代码
2017/10/12 Javascript
Angular中的ng-template及angular 使用ngTemplateOutlet 指令的方法
2018/08/08 Javascript
解决vue cli使用typescript后打包巨慢的问题
2019/09/30 Javascript
使用p5.js实现动态GIF图片临摹重现
2019/10/23 Javascript
Vue如何将页面导出成PDF文件
2020/08/17 Javascript
使用Vant完成DatetimePicker 日期的选择器操作
2020/11/12 Javascript
js中实现继承的五种方法
2021/01/25 Javascript
Python如何实现MySQL实例初始化详解
2017/11/06 Python
利用python和ffmpeg 批量将其他图片转换为.yuv格式的方法
2019/01/08 Python
Python抓新型冠状病毒肺炎疫情数据并绘制全国疫情分布的代码实例
2020/02/05 Python
Python爬取网页信息的示例
2020/09/24 Python
布局和排版教程 纯css3实现图片三角形排列
2014/10/17 HTML / CSS
欧洲最大的婴幼儿服装及内衣公司:Petit Bateau(小帆船)
2016/08/16 全球购物
美国经典刺绣和字母儿童服装特卖:Smocked Auctions
2018/07/16 全球购物
IGK Hair官网:喷雾、洗发水、护发素等
2020/11/03 全球购物
意大利在线药房:Saninforma
2021/02/11 全球购物
ORACLE十问
2015/04/20 面试题
应用电子专业学生的自我评价
2013/10/16 职场文书
高中生毕业学习总结的自我评价
2013/11/14 职场文书
英文自荐信
2013/12/19 职场文书
2014年群众路线党员自我评议
2014/09/24 职场文书
社区综治工作汇报
2014/10/27 职场文书
德能勤绩廉个人总结
2015/02/14 职场文书
学校教学工作总结2015
2015/05/19 职场文书