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获取table下某一行某一列的值实现代码
Apr 07 jQuery
jQuery使用JSONP实现跨域获取数据的三种方法详解
May 04 jQuery
jQuery鼠标移动图片上实现放大效果
Jun 25 jQuery
jQuery validata插件实现方法
Jun 25 jQuery
详解webpack3如何正确引用并使用jQuery库
Aug 26 jQuery
jQuery UI 实例讲解 - 日期选择器(Datepicker)
Sep 18 jQuery
jQuery简单实现对数组去重及排序操作实例
Oct 31 jQuery
jquery如何实现点击空白处隐藏元素
Dec 05 jQuery
jQuery创建及操作xml格式数据示例
May 26 jQuery
JavaScript前端页面搜索功能案例【基于jQuery】
Jul 10 jQuery
基于JQuery实现页面定时弹出广告
May 08 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的关于变量和日期处理的一些面试题目整理
2015/08/10 PHP
PHP面向对象程序设计之命名空间与自动加载类详解
2016/12/02 PHP
php学习笔记之字符串常见操作总结
2019/07/16 PHP
Javascript客户端脚本的设计和应用
2006/08/21 Javascript
js 发个判断字符串是否为符合标准的函数
2009/04/27 Javascript
js动态设置鼠标事件示例代码
2013/10/30 Javascript
javascript笛卡尔积算法实现方法
2015/04/08 Javascript
javascript实现根据3原色制作颜色选择器的方法
2015/07/17 Javascript
分享12个非常实用的JavaScript小技巧
2016/05/11 Javascript
使用jQuery调用XML实现无刷新即时聊天
2016/08/07 Javascript
js显示动态时间的方法详解
2016/08/20 Javascript
修改Jquery Dialog 位置的实现方法
2016/08/26 Javascript
js中获取 table节点各tr及td的内容简单实例
2016/10/14 Javascript
react native带索引的城市列表组件的实例代码
2017/08/08 Javascript
微信小程序中button组件的边框设置的实例详解
2017/09/27 Javascript
微信小程序实现tab切换效果
2017/11/21 Javascript
vue+iview写个弹框的示例代码
2017/12/05 Javascript
Vue组件中的data必须是一个function的原因浅析
2018/09/03 Javascript
vue实现点击选中,其他的不选中方法
2018/09/05 Javascript
Python 模拟登陆的两种实现方法
2017/08/10 Python
Python并发编程协程(Coroutine)之Gevent详解
2017/12/27 Python
django2 快速安装指南分享
2018/01/05 Python
Python AES加密实例解析
2018/01/18 Python
Python实现PS图像抽象画风效果的方法
2018/01/23 Python
浅谈Python3多线程之间的执行顺序问题
2020/05/02 Python
html5 canvas 简单画板实现代码
2012/01/05 HTML / CSS
有趣的睡衣和礼物:LazyOne
2019/11/27 全球购物
卫校中专生个人自我评价
2013/09/19 职场文书
给老师的道歉信
2014/01/11 职场文书
校园之声广播稿
2014/01/31 职场文书
《卖木雕的少年》教学反思
2014/04/11 职场文书
大班下学期个人总结
2015/02/13 职场文书
街道办残联2016年助残日活动总结
2016/04/01 职场文书
2016年安全月活动总结
2016/04/06 职场文书
MySQL GRANT用户授权的实现
2021/06/18 MySQL
python基础之函数的定义和调用
2021/10/24 Python