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

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

当我输入瓦窑村  就把相关带瓦窑的客户信息显示出来并把瓦窑村字体设置红色, 其他的就不显示;下面看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">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

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

就不会显示红色了;

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

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

时间: 2024-08-03 08:09:12

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

Tag It 一款 Jquery控件,当你在文本框中输入逗号时,自动帮你分隔开相关内容

Demo地址:http://webspirited.com/tagit/ 使用方法: 除了JQuery脚本外,下面的脚本也是必须的,这些脚本你都可以去GitHub下载:https://github.com/hailwood/jQuery-Tagit <link href="~/Content/jquery.tagit.css" rel="stylesheet" /><link href="~/Content/tagit.ui-zendes

网站建设中前端常用的jQuery+easing缓动的动画

网站建设中前端人员利用jQuery实现动画再简单不过了,只是要实现更酷的效果还需要插件来帮忙,easing就是一款帮助jQuery实现缓动动画的插件,经过试用,效果很不错! 下载该插件:jquery.easing.1.3.js jquery.easing.compatibility.js 该插件美化排版后是130行左右,压缩后更小.这个插件弥补了jquery里面的动画效果的不足,是其动画效果更加强悍. X轴表示时间,Y轴表示的是动画效果的变化.查看这些曲线变化,更利于掌握这个插件的效果. 插件支

推荐20款基于 jQuery &amp; CSS 的文本效果插件

jQuery 和 CSS 可以说是设计和开发行业的一次革命.这一切如此简单,快捷的一站式服务.jQuery 允许你在你的网页中添加一些真正令人惊叹的东西而不用付出很大的努力,要感谢那些优秀的 jQuery 插件. 所以今天我们将展示一些很酷的文本效果插件,将帮助你为你的 Web 页面创建一些很酷的和动态的东西.这里是20个基于 jQuery & CSS 的文本效果插件. 您可能感兴趣的相关文章 12款经典的白富美型 jQuery 图片轮播插件 让网站动起来!12款优秀的 jQuery 动画插件

web前端开发中常用的尺寸和位置

我们在日常web前端开发过程中,会经常用到各种尺寸和位置.通常是js做动画的时候.轮播图,滚屏动画,粒子,碰撞检测,拖拽,滚动加载等等.这里我将常用的尺寸和位置的获取进行总结,不包括canvas,SVG. 在web页面开发中,尺寸和位置分为屏幕的尺寸和位置,元素的尺寸和位置,还有一个是文档的尺寸和位置,不过文档的尺寸和位置是通过document.body获取的,也算是一个元素.还有鼠标的位置.所以尺寸和位置主要分为三类: 屏幕尺寸和位置 元素尺寸和位置 特殊的元素,文档的尺寸和位置 鼠标的位置(

前端知识点总结——jQuery

前端知识点总结--JQ 1.什么是jQuery: jQuery: 第三方的极简化的DOM操作的函数库第三方: 下载极简化: 是DOM操作的终极简化: 4个方面: 1\. DOM: 增删改查 2\. 事件绑定: 3\. 动画效果: 4\. Ajax DOM操作: 学习jQuery还是在学DOM,只不过API简化了函数库: jQuery中都是函数,用函数来解决一切问题为什么使用: DOM操作的终极简化 解决了大部分浏览器兼容性问题凡是jQuery让用的,都没有兼容性问题 2.如何使用: 下载: 版本

前端(5)之jQuery

前端(5)之jQuery jQuery介绍 1.jQuery是一个轻量级的,兼容多浏览器的JavaScript库. 2.jQuery使用户能够更方便地处理HTML Document.Events.实现动画效果.方便地进行Ajax交互,能够极大地简化JavaScript编程.它的宗旨就是:"Write less, do more." jQuery的优势: 一款轻量级的JS框架.jQuery核心js文件才几十kb,不会影响页面加载速度. 丰富的DOM选择器,jQuery的选择器用起来很方便

一探前端开发中的JS调试技巧

前言:调试技巧,在任何一项技术研发中都可谓是必不可少的技能.掌握各种调试技巧,必定能在工作中起到事半功倍的效果.譬如,快速定位问题.降低故障概率.帮助分析逻辑错误等等.而在互联网前端开发越来越重要的今天,如何在前端开发中降低开发成本,提升工作效率,掌握前端开发调试技巧尤为重要. 本文将一一讲解各种前端JS调试技巧,也许你已经熟练掌握,那让我们一起来温习,也许有你没见过的方法,不妨一起来学习,也许你尚不知如何调试,赶紧趁此机会填补空白. 骨灰级调试大师Alert 那还是互联网刚刚起步的时代,网页前

第一百七十七节,jQuery,知问前端--概述及 jQuery UI

jQuery,知问前端--概述及 jQuery UI 学习要点: 1.项目介绍 2.jQuery UI 3.UI 主题 一.项目介绍 我们重点仿照"知乎"的架构模式来搭建界面和布局,以及大部分前端功能.而"百度 知道"作为辅助功能来确定我们这个项目需要的前端功能. 从以上知名问答站点中,我们可以确认最主要的前端功能:1.弹出对话框:2.前端按钮: 3.折叠菜单:4.选项卡切换:5.滑动块:6.日历:7.自动补全:8 拖放:等一系列前端模块. 二.jQuery UI

知问前端——概述及jQuery UI

知问系统,是一个问答系统.主要功能:即会员提出问题,会员回答问题.目前比较热门的此类网站有:知乎http://www.zhihu.com.百度知道http://zhidao.baidu.com等.这里我们重点参考“知乎”,来学习一下它采用的前端效果. 项目介绍 我们重点仿照“知乎”的架构模式来搭建界面和布局,以及大部分前端功能.而“百度知道”作为辅助功能来确定我们这个项目需要的前端功能. 从以上知名问答站点中,我们可以确认最主要的前端功能:1.弹出对话框:2.前端按钮:3.折叠菜单:4.选项卡切