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 相关文章推荐
HTML5+jQuery实现搜索智能匹配功能
Mar 24 jQuery
基于jQuery实现的Ajax 验证用户名唯一性实例代码
Jun 28 jQuery
如何将 jQuery 从你的 Bootstrap 项目中移除(取而代之使用Vue.js)
Jul 17 jQuery
jQuery扇形定时器插件pietimer使用方法详解
Jul 18 jQuery
JavaScript之事件委托实例(附原生js和jQuery代码)
Jul 22 jQuery
jquery 获取索引值在一定范围的列表方法
Jan 25 jQuery
jquery ajaxfileuplod 上传文件 essyui laoding 效果【防止重复上传文件】
May 26 jQuery
jQuery实现下拉菜单动态添加数据点击滑出收起其他功能
Jun 14 jQuery
详解webpack引用jquery(第三方模块)的三种办法
Aug 21 jQuery
JQuery 实现文件下载的常用方法分析
Oct 29 jQuery
jquery 插件重新绑定的处理方法分析
Nov 23 jQuery
jquery实现垂直手风琴导航栏
Feb 18 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语言认识上需要避免的10大误区
2014/06/12 PHP
php实现的pdo公共类定义与用法示例
2017/07/19 PHP
PHP实现的最大正向匹配算法示例
2017/12/19 PHP
解决laravel资源加载路径设置的问题
2019/10/14 PHP
JavaScript方法和技巧大全
2006/12/27 Javascript
基于JQuery的访问WebService的代码(可访问Java[Xfire])
2010/11/19 Javascript
JQuery复制DOM节点的方法
2015/06/11 Javascript
jQuery焦点图切换特效代码分享
2015/09/15 Javascript
七个不允许错过的jQuery小技巧
2015/12/21 Javascript
剖析Node.js异步编程中的回调与代码设计模式
2016/02/16 Javascript
javascript获取wx.config内部字段解决微信分享
2016/03/09 Javascript
javascript中arguments,callee,caller详解
2016/03/16 Javascript
jQuery过滤特殊字符及JS字符串转为数字
2016/05/26 Javascript
jQuery实现点击后高亮背景固定显示的菜单效果【附demo源码下载】
2016/09/21 Javascript
微信小程序 小程序制作及动画(animation样式)详解
2017/01/06 Javascript
React Native 搭建开发环境的方法步骤
2017/10/30 Javascript
vue里如何主动销毁keep-alive缓存的组件
2019/03/21 Javascript
小程序最新获取用户昵称和头像的方法总结
2019/09/23 Javascript
解决vue的touchStart事件及click事件冲突问题
2020/07/21 Javascript
Python计算回文数的方法
2015/03/11 Python
Python自动化测试Eclipse+Pydev 搭建开发环境
2016/08/15 Python
详解python的argpare和click模块小结
2019/03/31 Python
python基础梳理(一)(推荐)
2019/04/06 Python
在Django的View中使用asyncio的方法
2019/07/12 Python
Python re正则表达式元字符分组()用法分享
2020/02/10 Python
详解PyQt5中textBrowser显示print语句输出的简单方法
2020/08/07 Python
Servlet的生命周期
2013/08/25 面试题
九年级语文教学反思
2014/02/04 职场文书
《影子》教学反思
2014/02/21 职场文书
12岁生日演讲稿
2014/05/14 职场文书
学校纪律作风整改措施思想汇报
2014/10/11 职场文书
2015年社区精神文明工作总结
2015/05/26 职场文书
本科毕业答辩开场白
2015/05/27 职场文书
结婚司仪主持词
2015/06/29 职场文书
TV动画《八十龟酱观察日记》第四季宣传PV公布
2022/04/06 日漫
Redis+AOP+自定义注解实现限流
2022/06/28 Redis