JavaScript实现的搜索及高亮显示功能示例

下面是“JavaScript实现的搜索及高亮显示功能示例”的完整攻略:

总体思路

实现搜索及高亮显示的功能,需要利用JavaScript的字符串操作、DOM操作以及正则表达式。主要的思路如下:

  1. 获取搜索框中输入的关键词;
  2. 遍历页面中需要搜索的元素,将元素中匹配到的关键词进行高亮显示;
  3. 将搜索框中输入的关键词进行正则表达式转换,获取匹配规则。

代码实现

下面利用两个示例来演示搜索及高亮显示的功能。

示例一:搜索文章标题

在这个示例中,我们实现搜索文章标题的功能。具体的实现过程如下:

  1. 获取搜索框中输入的关键词。
const keyword = document.getElementById('search-input').value;
  1. 遍历页面中需要搜索的元素,将元素中匹配到的关键词进行高亮显示。这里需要找到所有的标题元素。
const titles = document.querySelectorAll('.article-title');
  1. 将元素中匹配到的关键词进行高亮显示。
titles.forEach((title) => {
  const reg = new RegExp('(' + keyword + ')', 'gi');
  const text = title.innerHTML.replace(reg, '<span class="highlighted">$1</span>');
  title.innerHTML = text;
});

在这段代码中,我们先利用正则表达式将匹配到的关键词转换成一个可以用于替换的字符串模式,然后将原始的字符串利用replace()函数进行替换。

完整的示例代码如下:

<!DOCTYPE html>
<html>
<head>
  <title>搜索文章标题</title>
  <meta charset="utf-8">
  <style>
    .highlighted {
      background-color: yellow;
    }
  </style>
</head>
<body>
  <input type="text" id="search-input">
  <ul>
    <li class="article">
      <h2 class="article-title">JavaScript实现的搜索及高亮显示功能示例</h2>
      <p class="article-content">这是一篇篇关于JavaScript实现搜索及高亮显示功能的示例文章。</p>
    </li>
    <li class="article">
      <h2 class="article-title">JavaScript数组的常用方法介绍</h2>
      <p class="article-content">本篇文章介绍了JavaScript数组的常用方法,包括push、pop、shift、unshift等。</p>
    </li>
  </ul>
  <script>
    const searchInput = document.getElementById('search-input');
    searchInput.addEventListener('input', function() {
      const keyword = searchInput.value;
      const titles = document.querySelectorAll('.article-title');
      titles.forEach((title) => {
        const reg = new RegExp('(' + keyword + ')', 'gi');
        const text = title.innerHTML.replace(reg, '<span class="highlighted">$1</span>');
        title.innerHTML = text;
      });
    });
  </script>
</body>
</html>

示例二:搜索列表项

在这个示例中,我们实现搜索列表项的功能。具体的实现过程如下:

  1. 获取搜索框中输入的关键词。
const keyword = document.getElementById('search-input').value;
  1. 遍历页面中需要搜索的元素,将元素中匹配到的关键词进行高亮显示。这里需要找到所有的列表项元素。
const listItems = document.querySelectorAll('.list-item');
  1. 将元素中匹配到的关键词进行高亮显示。
listItems.forEach((item) => {
  const reg = new RegExp('(' + keyword + ')', 'gi');
  const text = item.innerHTML.replace(reg, '<span class="highlighted">$1</span>');
  item.innerHTML = text;
});

在这段代码中,我们先利用正则表达式将匹配到的关键词转换成一个可以用于替换的字符串模式,然后将原始的字符串利用replace()函数进行替换。

完整的示例代码如下:

<!DOCTYPE html>
<html>
<head>
  <title>搜索列表项</title>
  <meta charset="utf-8">
  <style>
    .highlighted {
      background-color: yellow;
    }
  </style>
</head>
<body>
  <input type="text" id="search-input">
  <ul>
    <li class="list-item">列表项1</li>
    <li class="list-item">列表项2</li>
    <li class="list-item">列表项3</li>
    <li class="list-item">列表项4</li>
    <li class="list-item">列表项5</li>
  </ul>
  <script>
    const searchInput = document.getElementById('search-input');
    searchInput.addEventListener('input', function() {
      const keyword = searchInput.value;
      const listItems = document.querySelectorAll('.list-item');
      listItems.forEach((item) => {
        const reg = new RegExp('(' + keyword + ')', 'gi');
        const text = item.innerHTML.replace(reg, '<span class="highlighted">$1</span>');
        item.innerHTML = text;
      });
    });
  </script>
</body>
</html>

总结

到这里,我们就成功地实现了搜索及高亮显示的功能。这个功能在实际的网站中非常常见,可以方便用户找到所需的信息,提高用户体验。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript实现的搜索及高亮显示功能示例 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • jQuery源码分析-03构造jQuery对象-工具函数

    当我们使用 jQuery 的时候,通过调用 jQuery() 函数可以创建 jQuery 对象。而这个函数本身又是通过调用 jQuery.fn.init() 函数来实现的。在 jQuery.fn.init() 函数内部,实现了很多工具函数。本篇攻略主要分析这些工具函数。 1. 工具函数概览 在构造 jQuery 对象的过程中,需要用到一系列的工具函数。这些工…

    jquery 2023年5月27日
    00
  • jquery事件preventDefault()方法用法实例

    jquery事件preventDefault()方法用法实例 1. preventDefault()方法概述 preventDefault() 是 jQuery 事件对象的一个方法,其作用是阻止浏览器默认行为的发生。 2. preventDefault()方法的使用方法 preventDefault() 方法的语法格式如下: event.preventDef…

    jquery 2023年5月27日
    00
  • 如何使用jQuery克隆一个块

    以下是两个示例,演示如何使用jQuery克隆一个块: 示例1:使用.clone()函数 以下是一个示例,演示如何使用.clone()来克隆一个块: <!DOCTYPE html> <html> <head> <title>jQuery .clone() Function Example</title&gt…

    jquery 2023年5月9日
    00
  • jQuery中ajax的使用与缓存问题的解决方法

    当使用 jQuery 的 ajax 方法时,它会自动缓存 GET 请求的返回结果。这在一些情况下是有用的,但有时也会导致问题。在本攻略中,我们将详细讲解如何在 jQuery 中正确使用 ajax 和解决与缓存相关的问题。 一、jQuery的ajax使用 jQuery 的 ajax 方法是一种方便的方式来执行异步 HTTP 请求。以下是一般情况下使用 ajax…

    jquery 2023年5月27日
    00
  • jquery实现的判断倒计时是否结束代码

    下面是详细讲解jquery实现的判断倒计时是否结束代码的完整攻略。 一、了解倒计时的实现原理 倒计时的实现原理就是每秒更新一次倒计时的时间,在每次更新时间时判断是否已经到达了指定的结束时间。 二、jquery实现倒计时 1. 基本思路 jquery实现倒计时的基本思路如下: 用jquery获取指定的倒计时DOM元素; 获取倒计时的结束时间; 使用setInt…

    jquery 2023年5月28日
    00
  • jQWidgets jqxTreeGrid statusBarHeight属性

    以下是关于 jQWidgets jqxTreeGrid 组件中 statusBarHeight 属性的详细攻略。 jQWidgets jqxTreeGrid statusBarHeight 属性 jQWidgets jqxTreeGrid 的 statusBarHeight 属性用于组件底部状态栏的高。您可以使用此属性来自定义状态栏的高度以应您的应用程序需求…

    jquery 2023年5月12日
    00
  • 深入理解jQuery()方法的构建原理

    下面是深入理解jQuery()方法的构建原理的完整攻略: 1. jQuery()方法的概述 jQuery是Web开发中广泛使用的一个JavaScript库,它提供了很多便捷的操作方法,其中最常用的方法就是jQuery()方法。jQuery()方法的作用是用来选取HTML文档中的元素,并进行DOM操作。 2. jQuery()方法的原理分析 jQuery()方…

    jquery 2023年5月27日
    00
  • jQuery实现可编辑表格并生成json结果(实例代码)

    下面我将详细讲解“jQuery实现可编辑表格并生成json结果(实例代码)”的完整攻略。 1. 安装jQuery 在使用jQuery之前,需要在html文件中先引入jQuery库。可以在head标签中添加以下代码: <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js&…

    jquery 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部