前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来


Posted in jQuery onNovember 14, 2017

做项目的时候有这么一个需求,客户信息显示出来后我要搜索查找相关的客户,并把相关的客户信息全部显示出来,因为一个客户全部信息我写在一个div里面  所以显示的时候就是显示整个div。先看看实现的效果: 

前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来

当我输入瓦窑村  就把相关带瓦窑的客户信息显示出来并把瓦窑村字体设置红色, 其他的就不显示;下面看html代码:

<body>
 <div class="bar bar-header-secondary" style="top:0">
  <div class="searchbar">
   <a class="searchbar-cancel">取消</a>
   <div class="search-input">
    <label class="icon icon-search" for="search"></label>
    <input type="text" id="txtSearch" onChange="txtSearch()" placeholder="输入关键字...">
   </div>
  </div>
 </div>
 <div class="content" id="divMain" style="top:2.2em">
  <div class="card">
   <div class="card-header"><div>富民青泉假有限公司</div> <span>530124210342</span></div>
   <div class="card-content">
    <div class="card-content-inner">
     客户经理:卢燕洲<br>
     负责人:张仕城 <a href="tel:13187876969" rel="external nofollow" >12345698711</a>
     <br>
     地址:富民县东村镇乐在村委会乐在村张仕城
     <br>
     客户分档:二档
    </div>
   </div>
  </div>

后面有n个<div class="card">这里就不重复了


</div>
</body>

 在我这里用的是onChange事件,这个根据个人的需要可以改;

<style type="text/css">
  .changestyle{color:red;font-weight:600;}
 </style>
 <script type="text/javascript">
  function txtSearch()
  {
   //遍历移除b标签,防止第二次搜索bug
   $(".changestyle").each(function()
   {
     var xx=$(this).html(); 
     $(this).replaceWith(xx);
    });
   //整个客户信息div
   var str=$("#divMain").html();
   //文本输入框
   var txt=$("#txtSearch").val();
   //不为空
   if($.trim(txt)!="")
   {
    //定义b标签样式红色加粗
    var re="<b class='changestyle'>"+txt+"</b>";
    //替换搜索相关的所有内容
    var nn=str.replace( new RegExp(txt,"gm"),re);
    //赋值
    // document.getElementById("divMain").innerHTML=nn;
    $("#divMain").html(nn);
    //显示搜索内容相关的div
   $(".card").hide().filter(":contains('"+txt+"')").show(); 
   }
   else
   {
   $(".card").show();
   }
  }
 </script>

其实整体的思路是这样的:

 1、先把要搜索的内容去html里面找,找到了就全部替换成<b class='changestyle'>"+搜索的内容+"</b>;changestyle里面的样式红色,加粗

 2、再把包含整个内容的div显示出来$(".card").hide().filter(":contains('"+txt+"')").show(); card就是整个包含客户信息的div;

 3、大家都知道这样改变了原来div的结构,里面春文本的变成了这样如果第二次输入的时候不把整个div恢复到加载页面的时候搜索就会出bug

前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来

明显多了两个b标签 如果不遍历移除b标签我搜瓦窑村在搜村委会就这样

前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来

就不会显示红色了;

 4、个人学到的关键技术:移除标签,替换全部相关到的文本replace方法,显示需要的div(过滤)filter方法!

总结:其中遇到的问题不止这些还有很多的,上网查了很多资料,纸上得来终觉浅,总是一次一次不同想法不同思路解决不同bug出来的;这很基础,只要有想法有思路就去做,不会的百度,一个点一个点的来。日积月累的慢慢前进吧!

总结

以上所述是小编给大家介绍的前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

jQuery 相关文章推荐
jQuery滚动插件scrollable.js用法分析
May 25 jQuery
jQuery实现简单的手风琴效果
Apr 17 jQuery
jQuery.Ajax()的data参数类型详解
Jul 23 jQuery
jQuery dateRangePicker插件使用方法详解
Jul 28 jQuery
简述jQuery Easyui一些用法
Aug 01 jQuery
原生JS与jQuery编写简单选项卡
Oct 30 jQuery
jQuery EasyUI window窗口使用实例代码
Dec 25 jQuery
jQuery插件实现的日历功能示例【附源码下载】
Sep 07 jQuery
js/jQuery实现全选效果
Jun 17 jQuery
jQuery/JS监听input输入框值变化实例
Oct 17 jQuery
jQuery实现html可联动的百分比进度条
Mar 26 jQuery
基于jQuery拖拽事件的封装
Nov 29 jQuery
jQuery除指定区域外点击任何地方隐藏DIV功能
Nov 13 #jQuery
jQuery实现checkbox即点即改批量删除及中间遇到的坑
Nov 11 #jQuery
浅谈jquery中ajax跨域提交的时候会有2次请求的问题
Nov 10 #jQuery
js与jQuery实现的用户注册协议倒计时功能实例【三种方法】
Nov 09 #jQuery
jQuery.Sumoselect插件实现下拉复选框效果
Nov 09 #jQuery
jQuery实现动态添加节点与遍历节点功能示例
Nov 09 #jQuery
简单实现jquery隔行变色
Nov 09 #jQuery
You might like
PHP获取MSN好友列表类的实现代码
2013/06/23 PHP
使用PHP强制下载PDF文件示例
2014/01/17 PHP
CodeIgniter模板引擎使用实例
2014/07/15 PHP
Laravel框架之解决前端显示图片问题
2019/10/24 PHP
jquery tab插件精简版分享
2011/09/10 Javascript
jQuery EasyUI API 中文文档 - Tree树使用介绍
2011/11/19 Javascript
中文字符串截取的js函数代码
2013/04/17 Javascript
jquery自定义属性(类型/属性值)
2013/05/21 Javascript
仿谷歌主页js动画效果实现代码
2013/07/14 Javascript
js onload处理html页面加载之后的事件
2013/10/30 Javascript
js Object2String方便查看js对象内容
2014/11/24 Javascript
javascript简单实现图片预加载
2014/12/03 Javascript
JS实现简单路由器功能的方法
2015/05/27 Javascript
原生javascript实现addClass,removeClass,hasClass函数
2016/02/25 Javascript
js获取地址栏中传递的参数(两种方法)
2017/02/08 Javascript
vue router 源码概览案例分析
2018/10/09 Javascript
微信{"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}
2018/10/12 Javascript
[31:00]2014 DOTA2华西杯精英邀请赛5 24 NewBee VS iG
2014/05/25 DOTA
python内存管理分析
2015/04/08 Python
python通过ftplib登录到ftp服务器的方法
2015/05/08 Python
Python实现建立SSH连接的方法
2015/06/03 Python
python 堆和优先队列的使用详解
2019/03/05 Python
Python使用reportlab模块生成PDF格式的文档
2019/03/11 Python
解决Python3 抓取微信账单信息问题
2019/07/19 Python
Html5页面二次分享的实现
2018/07/30 HTML / CSS
机械制造专业个人的自我评价
2013/12/28 职场文书
感恩母亲节活动方案
2014/03/04 职场文书
党的群众路线教育实践活动心得体会900字
2014/03/07 职场文书
品酒会策划方案
2014/05/26 职场文书
销售竞赛活动方案
2014/08/23 职场文书
公安局副政委班子个人对照检查材料
2014/10/04 职场文书
国家税务局领导班子对照检查材料思想汇报
2014/10/04 职场文书
驾驶员管理制度范本
2015/08/06 职场文书
2019让人心动的商业计划书
2019/06/27 职场文书
班组长如何制订适合本班组的工作计划?
2019/07/10 职场文书
嵌入式Redis服务器在Spring Boot测试中的使用教程
2021/07/21 Redis