jquery 输入框查找关键字并提亮颜色的实例代码

首先,我们需要引入jQuery库,因为我们将使用jQuery库的一些方法。

<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>

然后,我们需要在HTML中定义一个输入框和一个展示搜索结果的容器:

<input type="text" id="search-input">
<div id="search-result">
<!-- 这里是搜索结果展示的容器 -->
</div>

接下来,我们需要监听输入框的“input”事件,每当输入框的值改变时,就触发一个函数来处理搜索并展示结果。

$('#search-input').on('input', function() {
  var keyword = $(this).val(); // 获取输入框中的值
  var resultHtml = searchAndHighlight(keyword); // 对关键字进行搜索和高亮,并返回搜索结果的HTML代码
  $('#search-result').html(resultHtml); // 将搜索结果展示到容器中
});

我们需要定义一个searchAndHighlight函数,该函数接收一个关键字作为参数,搜索整个网页中包含该关键字的内容,并对其进行高亮。

function searchAndHighlight(keyword) {
  var resultHtml = ''; // 存储搜索结果的HTML代码
  if (keyword) {
    // 如果输入框中有内容
    $('body *').each(function() {
      var text = $(this).text(); // 获取元素的文本内容
      var index = text.indexOf(keyword); // 判断文本内容中是否包含关键字
      if (index >= 0) {
        // 如果包含,则对关键字进行高亮处理
        var start = index; // 获取关键字在文本中的起始位置
        var end = index + keyword.length - 1; // 获取关键字在文本中的结束位置
        var before = text.substring(0, start); // 截取关键字前面的部分
        var middle = text.substring(start, end + 1); // 截取包含关键字的部分
        var after = text.substring(end + 1); // 截取关键字后面的部分
        resultHtml += before + '<span class="highlight">' + middle + '</span>' + after; // 将三部分拼接起来,中间部分用span标签高亮处理
      } else {
        // 如果不包含,则直接将元素的文本内容展示到搜索结果中
        resultHtml += text;
      }
    });
  }
  return resultHtml;
}

最后,我们需要定义一个CSS样式,来为高亮的部分增加样式:

.highlight {
  background-color: yellow;
}

示例一:

如果用户输入的关键字为“JavaScript”,则搜索结果将会展示整个页面中包含“JavaScript”的内容,并对其中的关键字进行高亮处理。

示例二:

如果用户输入的关键字为“HTML”,则搜索结果将会展示整个页面中包含“HTML”的内容,并对其中的关键字进行高亮处理。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jquery 输入框查找关键字并提亮颜色的实例代码 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • php+websocket 实现的聊天室功能详解

    下面是“php+websocket 实现的聊天室功能详解”的完整攻略。 概述 本攻略将介绍如何使用PHP和WebSocket技术实现一个简单的聊天室。WebSocket是一种在单个TCP连接上提供双向通信的协议,可以使得应用程序实现实时数据传输以及实时更新。利用PHP可以轻松地建立WebSocket服务器,因此这种技术非常适用于实现实时的聊天室。 实现步骤 …

    css 2023年6月10日
    00
  • 纯js实现遮罩层效果原理分析

    首先,什么是遮罩层效果呢?顾名思义,就是用来遮住某一区域的一层蒙版,可以用于模态框、提示框等场景。那我们该如何用纯js来实现遮罩层效果呢? 一、HTML结构 我们需要在HTML中定义遮罩层的结构,可以使用一个具有绝对定位的div元素来充当遮罩层,代码如下: <body> <div id="mask"></di…

    css 2023年6月10日
    00
  • DIV CSS常用的网页布局代码

    下面是“DIV CSS常用的网页布局代码”的完整攻略,包含了基本语法和两个示例: 基本语法 网页布局是指通过HTML和CSS代码来控制网页上不同元素的位置和大小。DIV是HTML中常用的“盒子”元素,可以使用CSS对DIV进行样式设置,从而控制网页布局。通过给不同的DIV设置不同的样式,可以实现多种不同的布局效果。 以下是DIV CSS常用的网页布局代码: …

    css 2023年6月9日
    00
  • DIV常见任务(上) —常规任务(显示滚动条/隐藏div/禁止事件冒泡等等)

    DIV常见任务(上) —常规任务(显示滚动条/隐藏div/禁止事件冒泡等等) 在网页设计过程中,我们常常需要对页面进行一些操作,如显示滚动条、隐藏 div、禁止事件冒泡等等。HTML 和 CSS 提供了丰富的标签和属性,可以方便地实现这些操作。以下是一些常见任务及对应的解决方案。 1. 显示滚动条 有时,我们会想要在页面显示滚动条,以便用户能够滚动页面。为此…

    css 2023年6月9日
    00
  • ie8 body overflow hidden 无效的解决方法

    针对“ie8 body overflow hidden 无效”的问题,我们可以通过以下方法来解决: 问题分析 首先需要分析问题,为什么设置了 body 的 overflow: hidden,在 IE8 中无效呢?这是因为 IE8 及以下版本只能对文档的根元素 html 进行滚动条的控制,而不能对 body 元素进行控制,因此 overflow: hidden…

    css 2023年6月10日
    00
  • 让横向排列的几个浮动(float:left)的子div居中显示

    要让横向排列的浮动子 div 居中显示,可以采用以下两种方法: 1. 使用 Flex 布局 使用 Flex 布局是最简单、最好理解的方法,同时也是最常用的方法之一。通过设置 flex 容器的属性,可以让子元素自动排列,并自动居中。 以下是具体实现步骤: 设置容器的 display 属性为 flex。 .parent { display: flex; } 设置…

    css 2023年6月10日
    00
  • HTML5中通过li-canvas轻松实现单图、多图、圆角图绘制,单行文字、多行文字等

    HTML5中通过li-canvas可以轻松实现各种图像和文字的绘制。以下是绘制单图、多图、圆角图片和单行、多行文字的攻略。 绘制单图 使用li-canvas绘制单个图片非常简单。首先需要在HTML中创建一个canvas元素,然后使用下面的JavaScript代码实现: var canvas = document.getElementById("my…

    css 2023年6月11日
    00
  • jQuery实现的自定义轮播图功能详解

    jQuery实现自定义轮播图功能详解 自定义轮播图是现代网站设计中经常出现的效果之一。通过jQuery实现轮播图功能,能够使我们更加灵活地控制其样式和交互效果。下面介绍一下实现自定义轮播图的具体步骤。 第一步:HTML结构 首先,我们需要在HTML结构中定义轮播图的内容。例如: <div class="slider"> &lt…

    css 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部