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导航条固定定位效果实例代码
May 26 jQuery
jquery请求servlet实现ajax异步请求的示例
Jun 03 jQuery
jquery+css实现侧边导航栏效果
Jun 12 jQuery
深入理解jquery的$.extend()、$.fn和$.fn.extend()
Jul 08 jQuery
360提示[高危]使用存在漏洞的JQuery版本的解决方法
Oct 27 jQuery
jQuery实现常见的隐藏与展示列表效果示例
Jun 04 jQuery
jQuery实现下拉菜单动态添加数据点击滑出收起其他功能
Jun 14 jQuery
js jquery 获取某一元素到浏览器顶端的距离实现方法
Sep 05 jQuery
jQuery 同时获取多个标签的指定内容并储存为数组
Nov 20 jQuery
详解如何使用webpack打包多页jquery项目
Feb 01 jQuery
Easyui 去除jquery-easui tab页div自带滚动条的方法
May 10 jQuery
Jquery $.map使用方法实例详解
Sep 01 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
laravel 去掉index.php伪静态的操作方法
2019/10/12 PHP
Javascript SHA-1:Secure Hash Algorithm
2006/12/20 Javascript
JS正则表达式验证数字代码
2014/01/28 Javascript
ANGULARJS中用NG-BIND指令实现单向绑定的例子
2014/12/08 Javascript
PHP中CURL的几个经典应用实例
2015/01/23 Javascript
jQuery实现表格展开与折叠的方法
2015/05/04 Javascript
jQuery+HTML5实现图片上传前预览效果
2015/08/20 Javascript
JavaScript、jQuery与Ajax的关系
2016/01/24 Javascript
JavaScript对象封装的简单实现方法(3种方法)
2017/01/03 Javascript
Bootstrap模态框案例解析
2017/03/05 Javascript
原生JS实现图片懒加载(lazyload)实例
2017/06/13 Javascript
jQuery 操作 HTML 元素和属性的方法
2018/11/12 jQuery
vue前端框架—Mint UI详解(更适用于移动端)
2019/04/30 Javascript
vue两组件间值传递 $router.push实现方法
2019/05/15 Javascript
vue限制输入框只能输入8位整数和2位小数的代码
2019/11/06 Javascript
Element Card 卡片的具体使用
2020/07/26 Javascript
JavaScript实现烟花绽放动画效果
2020/08/04 Javascript
python解决方案:WindowsError: [Error 2]
2016/08/28 Python
python 写入csv乱码问题解决方法
2016/10/23 Python
python多任务及返回值的处理方法
2019/01/22 Python
浅谈Python反射 &amp; 单例模式
2019/03/21 Python
python rsync服务器之间文件夹同步脚本
2019/08/29 Python
Python Collatz序列实现过程解析
2019/10/12 Python
Python基础教程之输入输出和运算符
2020/07/26 Python
在线服装零售商:SheIn
2016/07/22 全球购物
计算机专业推荐信范文
2013/11/20 职场文书
社会实践感言
2014/01/25 职场文书
材料加工工程求职信
2014/02/19 职场文书
人力资源管理系自荐信
2014/05/31 职场文书
语文教研活动总结
2014/07/02 职场文书
水电工程师岗位职责
2015/02/13 职场文书
大国崛起观后感
2015/06/02 职场文书
新郎婚礼致辞
2015/07/27 职场文书
《颐和园》教学反思
2016/02/19 职场文书
2019年聘任书的写作格式及范文!
2019/07/03 职场文书
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
2021/04/12 Python