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使用unlock.js插件实现滑动解锁
Apr 04 jQuery
jQuery EasyUI 组件加上“清除”功能实例详解
Apr 11 jQuery
node.js+jQuery实现用户登录注册AJAX交互
Apr 28 jQuery
JQuery 封装 Ajax 常用方法(推荐)
May 21 jQuery
浅谈struts1 &amp; jquery form 文件异步上传
May 25 jQuery
jQuery选择器_动力节点Java学院整理
Jul 05 jQuery
解决IE7中使用jQuery动态操作name问题
Aug 28 jQuery
jQuery 1.9版本以上的浏览器判断方法代码分享
Aug 28 jQuery
jQuery实现table中两列CheckBox只能选中一个的示例
Sep 22 jQuery
jQuery简单实现对数组去重及排序操作实例
Oct 31 jQuery
jQuery中ajax获取数据赋值给页面的实例
Dec 31 jQuery
javascript异步处理与Jquery deferred对象用法总结
Jun 04 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+.htaccess实现全站静态HTML文件GZIP压缩传输(一)
2007/02/15 PHP
php缓存技术详细总结
2013/08/07 PHP
利用phpExcel实现Excel数据的导入导出(全步骤详细解析)
2013/11/26 PHP
ThinkPHP模板替换与系统常量及应用实例教程
2014/08/22 PHP
php模板引擎技术简单实现
2016/03/15 PHP
php封装的数据库函数与用法示例【参考thinkPHP】
2016/11/08 PHP
PHP实现Markdown文章上传到七牛图床的实例内容
2020/02/11 PHP
JS实现下拉框的动态添加(附效果)
2013/04/03 Javascript
javascript图片延迟加载实现方法及思路
2015/12/31 Javascript
全面详细的jQuery常见开发技巧手册
2016/02/21 Javascript
一次$.getJSON不执行的简单记录
2016/07/19 Javascript
一个仿微博登陆邮箱提示框js开发案例
2016/07/28 Javascript
jQuery实现搜索页面关键字的功能
2017/02/16 Javascript
jQuery之动画ajax事件(实例讲解)
2017/07/18 jQuery
JS简单实现动态添加HTML标记的方法示例
2018/04/08 Javascript
探索JavaScript中私有成员的相关知识
2019/06/13 Javascript
微信小程序跨页面数据传递事件响应实现过程解析
2019/12/19 Javascript
Javascript实现鼠标移入方向感知
2020/06/24 Javascript
[51:06]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS Liquid
2018/03/30 DOTA
python使用Flask框架获取用户IP地址的方法
2015/03/21 Python
详解python中的文件与目录操作
2017/07/11 Python
Python:Scrapy框架中Item Pipeline组件使用详解
2017/12/27 Python
使用Python的Turtle绘制哆啦A梦实例
2019/11/21 Python
django 获取字段最大值,最新的记录操作
2020/08/09 Python
基于css3仿造window7的开始菜单
2010/06/17 HTML / CSS
关于h5中的fetch方法解读(小结)
2017/11/15 HTML / CSS
JoJo Maman Bébé爱尔兰官网:英国最受欢迎的精品母婴品牌
2020/12/20 全球购物
比较一下entity bean和session bean
2013/12/27 面试题
分别介绍一下Session Bean和Entity Bean
2015/03/13 面试题
计算机大学生的自我评价
2013/10/15 职场文书
高中体育教学反思
2014/01/29 职场文书
正风肃纪剖析材料
2014/02/18 职场文书
2014年重阳节老干部座谈会上的讲话稿
2014/09/25 职场文书
黑暗中的舞者观后感
2015/06/18 职场文书
MySQL数据库 任意ip连接方法
2022/05/20 MySQL