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中animate()的使用方法及解决$(”body“).animate({“scrollTop”:top})不被Firefox支持的问题
Apr 04 jQuery
jQuery输入框密码的显示隐藏【代码分享】
Apr 29 jQuery
jquery平滑滚动到顶部插件使用详解
May 08 jQuery
jQuery导航条固定定位效果实例代码
May 26 jQuery
JavaScript实现离开页面前提示功能【附jQuery实现方法】
Sep 26 jQuery
关于jquery layui弹出层的使用方法
Apr 21 jQuery
关于jquery中attr()和prop()方法的区别
May 28 jQuery
JQuery的加载和选择器用法简单示例
May 13 jQuery
JQuery样式与属性设置方法分析
Dec 07 jQuery
jquery实现简单拖拽效果
Jul 20 jQuery
js和jquery判断数据类型的4种方法总结
Aug 28 jQuery
jQuery是用来干什么的 jquery其实就是一个js框架
Feb 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快速url重写更新版[需php 5.30以上]
2010/04/25 PHP
php和editplus正则表达式去除空白行
2015/04/17 PHP
thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
2016/05/19 PHP
PHP实现防盗链的方法分析
2017/07/25 PHP
laravel 如何实现引入自己的函数或类库
2019/10/15 PHP
Apache+PHP+MySQL搭建PHP开发环境图文教程
2020/08/06 PHP
基于jquery的滚动鼠标放大缩小图片效果
2011/10/27 Javascript
javascript高级程序设计第二版第十二章事件要点总结(常用的跨浏览器检测方法)
2012/08/22 Javascript
jQuery语法高亮插件支持各种程序源代码语法着色加亮
2013/04/27 Javascript
javaScript array(数组)使用字符串作为数组下标的方法
2013/11/19 Javascript
为jquery的ajaxfileupload增加附加参数的方法
2014/03/04 Javascript
简介JavaScript中substring()方法的使用
2015/06/06 Javascript
详细解读AngularJS中的表单验证编程
2015/06/19 Javascript
javascript产生随机数方法汇总
2016/01/25 Javascript
使用NodeJs 开发微信公众号(三)微信事件交互实例
2016/03/02 NodeJs
解析Javascript单例模式概念与实例
2016/12/05 Javascript
Javascript实现页面滚动时导航智能定位
2017/05/06 Javascript
vue之nextTick全面解析
2017/05/17 Javascript
手把手教您实现react异步加载高阶组件
2020/04/07 Javascript
vue 实现超长文本截取,悬浮框提示
2020/07/29 Javascript
Python读取ini文件、操作mysql、发送邮件实例
2015/01/01 Python
初学Python函数的笔记整理
2015/04/07 Python
python引用DLL文件的方法
2015/05/11 Python
Python+PyQT5的子线程更新UI界面的实例
2019/06/14 Python
python框架Django实战商城项目之工程搭建过程图文详解
2020/03/09 Python
详解Python 最短匹配模式
2020/07/29 Python
通过CSS3的object-fit来调整图片适配尺寸的技巧简介
2016/02/27 HTML / CSS
html2canvas生成的图片偏移不完整的解决方法
2020/05/19 HTML / CSS
Merchant 1948澳大利亚:新西兰领先的鞋类和靴子供应商
2018/03/24 全球购物
理工学院学生自我鉴定
2014/02/23 职场文书
城市规划应届毕业生自荐信
2014/07/04 职场文书
2015年初中元旦晚会活动总结
2014/11/28 职场文书
学生个人评语大全
2015/01/04 职场文书
项目经理岗位职责
2015/01/31 职场文书
小学新教师个人总结
2015/02/05 职场文书
Nginx+Tomcat负载均衡多实例详解
2022/04/11 Servers