JS实现静态页面搜索并高亮显示功能完整示例

下面是JS实现静态页面搜索并高亮显示功能的完整攻略。

1. 理解需求

我们需要实现一个静态页面内的搜索功能,当用户在搜索框中输入关键词后,页面中相关内容需要被高亮显示。

2. 编写HTML结构和样式

需要准备一个HTML文件,其中包含一个搜索框和搜索结果的展示区域。可以参考如下HTML代码:

<!doctype html>
<html>
<head>
    <meta charset="UTF-8">
    <title>搜索功能示例</title>
    <style>
        .search {
            margin: 20px auto;
            width: 600px;
            text-align: center;
        }
        .search input[type="text"] {
            width: 300px;
            height: 30px;
            padding: 0 10px;
            border: 1px solid #ccc;
            border-radius: 5px;
        }
        .result {
            margin: 20px auto;
            width: 600px;
            line-height: 30px;
        }
        .highlight {
            color: red;
            font-weight: bold;
        }
    </style>
</head>
<body>
    <div class="search">
        <input type="text" id="searchInput" placeholder="请输入关键词">
        <button onclick="search()">搜索</button>
    </div>
    <div class="result" id="result"></div>
</body>
</html>

3. 实现搜索功能

在HTML文件中添加JavaScript代码,实现搜索功能。具体代码如下:

function search() {
  // 获取搜索关键词和结果展示区域
  var keyword = document.getElementById('searchInput').value.trim();
  var resultArea = document.getElementById('result');

  // 如果关键词为空,直接返回
  if (keyword === '') {
    resultArea.innerHTML = '';
    alert('请输入搜索关键词');
    return;
  }

  // 获取所有内容元素
  var elements = document.querySelectorAll('.content');

  // 遍历每一个内容元素,查找是否包含关键词
  for (var i = 0; i < elements.length; i++) {
    var content = elements[i].innerHTML;
    if (content.indexOf(keyword) !== -1) {
      // 如果包含关键词,将内容区域改为高亮显示
      content = content.replace(keyword, '<span class="highlight">' + keyword + '</span>');
      elements[i].innerHTML = content;
      resultArea.appendChild(elements[i].cloneNode(true));
    }
  }

  // 隐藏不包含关键词的元素
  for (var i = 0; i < elements.length; i++) {
    if (elements[i].innerHTML.indexOf(keyword) === -1) {
      elements[i].style.display = 'none';
    }
  }
}

4. 示例说明

以下是两个示例说明。

示例一

在上面的HTML文件中,新增如下内容:

<div class="content">
  <h2>HTML</h2>
  <p>HTML (HyperText Markup Language) 是用来描述网页的一种语言。</p>
</div>
<div class="content">
  <h2>CSS</h2>
  <p>CSS (Cascading Style Sheets) 是用来描述网页外观样式的语言。</p>
</div>
<div class="content">
  <h2>JavaScript</h2>
  <p>JavaScript 是一种可以在网页中实现交互效果的编程语言。</p>
</div>

当用户在搜索框中输入“CSS”时,结果区域展示出:

CSS (Cascading Style Sheets) 是用来描述网页外观样式的语言。

另外两个不包含关键词的内容区域被隐藏。

示例二

在另一个HTML文件中,新增如下内容:

<div class="content">
  <h2>HTML</h2>
  <p>HTML (HyperText Markup Language) 是用来描述网页的一种语言。</p>
</div>
<div class="content">
  <h2>CSS</h2>
  <p>CSS (Cascading Style Sheets) 是用来描述网页外观样式的语言。</p>
</div>
<div class="content">
  <h2>JavaScript</h2>
  <p>JavaScript 是一种可以在网页中实现交互效果的编程语言。</p>
</div>

当用户在搜索框中输入“JavaScript”时,结果区域展示出:

HTML (HyperText Markup Language) 是用来描述网页的一种语言。
CSS (Cascading Style Sheets) 是用来描述网页外观样式的语言。
JavaScript 是一种可以在网页中实现交互效果的编程语言。

将所有内容区域中“JavaScript”关键词标红高亮显示。

以上是JS实现静态页面搜索并高亮显示功能的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS实现静态页面搜索并高亮显示功能完整示例 - Python技术站

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

相关文章

  • 在其他地方你学不到的jQuery小贴士和技巧(欢迎收藏)

    在其他地方你学不到的jQuery小贴士和技巧 jQuery 是一个非常流行的 JavaScript 库,它可以极大的简化 JavaScript 编程。但是,如果只是用来选取 DOM 元素和处理事件,那还只是 jQuery 的冰山一角。在这篇文章中,我们将分享一些在其他地方你学不到的 jQuery 小贴士和技巧。 1. 使用 .find() 和 .end() …

    jquery 2023年5月28日
    00
  • JQuery实现页面弹出框

    JQuery是一个非常强大的JavaScript库,它提供了许多有用的功能,其中就包括了页面弹出框。下面我将详细介绍使用JQuery实现页面弹出框的完整攻略,包括以下几个步骤: Step 1:引入JQuery 首先,我们需要在页面中引入JQuery库,可以通过CDN或者本地文件引入。以下是通过CDN引入JQuery的代码: <script src=&q…

    jquery 2023年5月27日
    00
  • jQuery UI的Sortable instance()方法

    jQuery UI 的 Sortable 组件提供了一个 instance() 方法,该方法用于获取 Sortable 的实例。在本教程中,我们将详细介绍 Sortable 的 instance() 方法的使用方法。 instance() 方法基本语法如下: $( "." ).sortable( "instance" …

    jquery 2023年5月11日
    00
  • jQuery post()方法

    jQuery是一款基于JavaScript的库,它可以简化前端开发中的代码量,为前端开发者提供了便利。其中,jQuery post()方法是非常常用的一种方法,它可以实现通过ajax提交数据并请求服务器响应。下面详细讲解下这个方法的使用方法。 post()方法定义 jQuery post()方法是通过ajax提交数据并请求服务器响应的方法。它使用HTTP P…

    jquery 2023年5月12日
    00
  • 如何使用CSS从jQuery UI对话框中移除关闭按钮

    当我们需要从jQuery UI对话框中移除关闭按钮时,我们可以使用CSS来实现。下面是一个详细的攻略,包含两个示例说明。 步骤 引入 UI 在HTML中,需要引入jQuery UI库的CSS和JavaScript文件。使用CDN或本地进行引入。以下是一个示例: <head> <title>My jQuery App</title…

    jquery 2023年5月9日
    00
  • jQWidgets jqxNotification autoClose属性

    以下是关于 jQWidgets jqxNotification 组件中 autoClose 属性的详细攻略。 jQWidgets jqxNotification autoClose 属性 jQWidgets jqxNotification 的 autoClose 属性用于设置通知组件是否自动关闭。 语法 // 设置通知组件是否自动关闭 $(‘#notific…

    jquery 2023年5月12日
    00
  • jQuery .tmpl() 用法示例介绍

    下面就给您介绍一下“jQuery .tmpl() 用法示例介绍”的完整攻略。 什么是jQuery .tmpl()? jQuery .tmpl() 是一个基于模板引擎的 jQuery 插件,用于构建 HTML 片段。它可以处理任意数量的数据,动态生成 HTML。可以将数据和 HTML 片段分开,只要数据的格式不变,HTML 片段就可以重复使用,提高了代码的重用…

    jquery 2023年5月28日
    00
  • 如何使用jQuery Mobile创建一个填充式弹出窗口

    如何使用jQuery Mobile创建一个填充式弹出窗口?本文将为大家提供一份详细攻略。 1. 创建一个填充式弹出窗口 <!– 弹出窗口内容代码 –> <div id="popup1" data-role="popup" data-theme="a" data-overlay-…

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