前端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 UI Grid 模态框中的表格实例代码
Apr 01 jQuery
jQuery插件FusionCharts绘制2D双折线图效果示例【附demo源码】
Apr 14 jQuery
jQuery设置图片等比例缩小的方法
Apr 29 jQuery
jquery.validate.js 多个相同name的处理方式
Jul 10 jQuery
基于JQuery的Ajax方法使用详解
Aug 16 jQuery
jQuery实现的简单动态添加、删除表格功能示例
Sep 21 jQuery
简单实现jquery隔行变色
Nov 09 jQuery
JS和JQuery实现雪花飘落效果
Nov 30 jQuery
jQuery事件绑定和解绑、事件冒泡与阻止事件冒泡及弹出应用示例
May 13 jQuery
jQuery高级编程之js对象、json与ajax用法实例分析
Nov 01 jQuery
jQuery中getJSON跨域原理的深入讲解
Sep 02 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的开发框架的现状和展望
2007/03/16 PHP
php minixml详解
2008/07/19 PHP
探讨如何在php168_cms中提取验证码
2013/06/08 PHP
用Zend Studio+PHPnow+Zend Debugger搭建PHP服务器调试环境步骤
2014/01/19 PHP
php自定义错误处理用法实例
2015/03/20 PHP
浅谈PHP接收POST数据方式
2015/06/05 PHP
jQuery 过滤not()与filter()实例代码
2012/05/10 Javascript
js 固定悬浮效果实现思路代码
2013/08/02 Javascript
动态加载js、css等文件跨iframe实现
2014/02/24 Javascript
使用jquery中height()方法获取各种高度大全
2014/04/02 Javascript
js实现精美的图片跟随鼠标效果实例
2015/05/16 Javascript
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
2016/04/07 Javascript
JS仿JQuery选择器功能
2017/03/08 Javascript
JS实现按钮控制计时开始和停止功能
2017/07/27 Javascript
微信小程序如何像vue一样在动态绑定类名
2018/04/17 Javascript
node.js监听文件变化的实现方法
2019/04/17 Javascript
微信小程序iBeacon测距及稳定程序的实现解析
2019/07/31 Javascript
JS扁平化输出数组的2种方法解析
2019/09/17 Javascript
详解uniapp的全局变量实现方式
2021/01/11 Javascript
[05:17]DOTA2誓师:今天我们在这里 明天TI4等我!
2014/03/26 DOTA
python模拟登录百度代码分享(获取百度贴吧等级)
2013/12/27 Python
浅谈pandas中shift和diff函数关系
2018/04/08 Python
Django跨域请求CSRF的方法示例
2018/11/11 Python
python3.4爬虫demo
2019/01/22 Python
Numpy中np.max的用法及np.maximum区别
2020/11/27 Python
美国紧身牛仔裤品牌:NYDJ
2017/05/24 全球购物
Veronica Beard官网:在酷、经典和别致之间找到了平衡
2018/01/11 全球购物
大学学习个人的自我评价
2014/02/18 职场文书
2014年幼儿园后勤工作总结
2014/11/10 职场文书
2014年组织部工作总结
2014/11/14 职场文书
员工年度工作总结2015
2015/05/18 职场文书
通讯稿格式及范文
2015/07/22 职场文书
Sql-Server数据库单表查询 4.3实验课
2021/04/05 SQL Server
浅谈Python numpy创建空数组的问题
2021/05/25 Python
关于PHP数组迭代器的使用方法实例
2021/11/17 PHP
instantclient客户端 连接oracle数据库
2022/04/26 Oracle