前端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中ajax跨域提交的时候会有2次请求的问题
Nov 10 jQuery
js和jQuery以及easyui实现对下拉框的指定赋值方法
Jan 23 jQuery
jquery写出PC端轮播图实例
Jan 26 jQuery
jquery.onoff实现简单的开关按钮功能(推荐)
May 24 jQuery
jQuery实现ajax回调函数带入参数的方法示例
Jun 26 jQuery
解决jQuery使用append添加的元素事件无效的问题
Aug 30 jQuery
为jquery的ajax请求添加超时timeout时间的操作方法
Sep 04 jQuery
jQuery选择器之基本过滤选择器用法实例分析
Feb 19 jQuery
jQuery中实现text()的方法
Apr 04 jQuery
使用jQuery如何写一个含验证码的登录界面
May 13 jQuery
jQuery Raty星级评分插件使用方法实例分析
Nov 25 jQuery
jQuery实现计算器功能
Oct 19 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实现网站插件机制的方法
2009/11/10 PHP
apache+codeigniter 通过.htcaccess做动态二级域名解析
2012/07/01 PHP
解析PHP处理换行符的问题 \r\n
2013/06/13 PHP
php+html5基于websocket实现聊天室的方法
2015/07/17 PHP
javascript开发中因空格引发的错误
2010/11/08 Javascript
javascript实现颜色渐变的方法
2013/10/30 Javascript
js网页右下角提示框实例
2014/10/14 Javascript
html的DOM中document对象anchors集合用法实例
2015/01/21 Javascript
JavaScript基本的输出和嵌入式写法教程
2015/10/20 Javascript
node.js express安装及示例网站搭建方法(分享)
2016/08/22 Javascript
浅谈JS之tagNaem和nodeName
2016/09/13 Javascript
js 动态生成json对象、时时更新json对象的方法
2016/12/02 Javascript
js数组去重的hash方法
2016/12/22 Javascript
JavaScript闭包与作用域链实例分析
2019/01/21 Javascript
小程序怎样让wx.navigateBack更好用的方法实现
2019/11/01 Javascript
vue点击页面空白处实现保存功能
2019/11/06 Javascript
[44:40]2018DOTA2亚洲邀请赛3月30日 小组赛A组Liquid VS OG
2018/03/31 DOTA
[01:13:01]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第三场
2018/04/05 DOTA
Python实现批量更换指定目录下文件扩展名的方法
2016/09/19 Python
使用Python 统计高频字数的方法
2019/01/31 Python
Django实现WebSSH操作物理机或虚拟机的方法
2019/11/06 Python
python内置模块collections知识点总结
2019/12/19 Python
tensorflow 环境变量设置方式
2020/02/06 Python
python3通过udp实现组播数据的发送和接收操作
2020/05/05 Python
Tensorflow卷积实现原理+手写python代码实现卷积教程
2020/05/22 Python
python实现邮件循环自动发件功能
2020/09/11 Python
Python关于拓扑排序知识点讲解
2021/01/04 Python
Java和Javasciprt的区别
2012/09/02 面试题
什么是规则表达式
2012/05/03 面试题
安全生产检讨书
2014/01/21 职场文书
安全生产月演讲稿
2014/05/09 职场文书
保护环境的标语
2014/06/09 职场文书
文案策划专业自荐信
2014/07/07 职场文书
未来,这5大方向都很适合创业
2019/07/22 职场文书
奖学金申请书(范文)
2019/08/14 职场文书
浅谈Redis中的RDB快照
2021/06/29 Redis