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插件FusionCharts绘制2D双折线图效果示例【附demo源码】
Apr 14 jQuery
jQuery Plupload上传插件的使用
Apr 19 jQuery
Jquery获取radio选中的值
May 05 jQuery
jQuery获取复选框选中的当前行的某个字段的值
Sep 15 jQuery
解决jquery有正确返回值但不执行success函数的问题
Aug 20 jQuery
jQuery实现数字自动增加或者减少的动画效果示例
Dec 11 jQuery
JQuery animate动画应用示例
May 14 jQuery
jQuery与原生JavaScript选择HTML元素集合用法对比分析
Nov 26 jQuery
jquery实现直播弹幕效果
Nov 28 jQuery
jQuery模仿ToDoList实现简单的待办事项列表
Dec 30 jQuery
详解jQuery中的prop()使用方法
Jan 05 jQuery
jQuery实现高度灵活的表单验证功能示例【无UI】
Apr 30 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+mysql一个名片库程序
2006/10/09 PHP
php使用百度翻译api示例分享
2014/01/31 PHP
PHP中把对象数组转换成普通数组的方法
2015/07/10 PHP
php 猴子摘桃的算法
2017/06/20 PHP
php数据结构之顺序链表与链式线性表示例
2018/01/22 PHP
PHP实现获取ip地址的5种方法,以及插入用户登录日志操作示例
2019/02/28 PHP
laravel实现上传图片并在页面显示的例子
2019/10/14 PHP
tagName的使用,留一笔
2006/06/26 Javascript
JS array 数组详解
2009/03/22 Javascript
js 表单提交后按钮变灰的实例代码
2013/08/16 Javascript
JS网页图片按比例自适应缩放实现方法
2014/01/15 Javascript
调用DOM对象的focus使文本框获得焦点
2014/02/19 Javascript
iframe父页面获取子页面参数的方法
2014/02/21 Javascript
jQuery中:radio选择器用法实例
2015/01/03 Javascript
表单验证插件Validation应用的实例讲解
2015/10/10 Javascript
JS控制HTML元素的显示和隐藏的两种方法
2016/09/27 Javascript
Move.js入门
2017/02/08 Javascript
Three.js利用顶点绘制立方体的方法详解
2017/09/27 Javascript
JavaScript设计模式之享元模式实例详解
2019/01/17 Javascript
在Vue中使用Viser说明(基于AntV-G2可视化引擎)
2020/10/28 Javascript
vue-video-player 断点续播的实现
2021/02/01 Vue.js
[01:00:54]TI4正赛第二日开场
2014/07/20 DOTA
Python字符串替换实例分析
2015/05/11 Python
windows10系统中安装python3.x+scrapy教程
2016/11/08 Python
对python周期性定时器的示例详解
2019/02/19 Python
django中使用Celery 布式任务队列过程详解
2019/07/29 Python
python处理RSTP视频流过程解析
2020/01/11 Python
python 实现人和电脑猜拳的示例代码
2020/03/02 Python
Selenium结合BeautifulSoup4编写简单的python爬虫
2020/11/06 Python
联想新加坡官方网站:Lenovo Singapore
2017/10/24 全球购物
SQL Server笔试题
2012/01/10 面试题
临床医学系毕业生推荐信
2013/11/09 职场文书
数控专业推荐信范文
2013/12/02 职场文书
社会实践评语
2014/04/28 职场文书
测绘工程专业求职信
2014/07/15 职场文书
2015年社区教育工作总结
2015/05/13 职场文书