javascript实现简单搜索功能

要实现简单的搜索功能,需要使用JavaScript编写代码实现。具体步骤如下:

第一步:获取搜索框元素

使用JavaScript代码获取搜索框输入的内容,代码如下:

var input = document.getElementById('searchInput');
var keyword = input.value;

以上代码中,searchInput是指页面中搜索框的ID,我们通过document.getElementById()方法获取输入框元素,再通过.value属性获取用户输入的搜索关键字。

第二步:遍历搜索结果

我们需要遍历页面上的所有结果,找到与搜索关键字匹配的结果。我们可以通过嵌套的for循环实现遍历。

var elements = document.getElementsByClassName('searchResult');
for (var i = 0; i < elements.length; i++) {
  var element = elements[i];
  var text = element.textContent || element.innerText;
  if (text.indexOf(keyword) >= 0) {
    element.style.display = '';
  } else {
    element.style.display = 'none';
  }
}

以上代码中,我们首先通过.getElementsByClassName()方法获取所有搜索结果元素,然后遍历每一个元素。对于每一个元素,我们通过.textContent.innerText获取文本内容,再使用indexOf()方法判断搜索关键字是否出现在文本中。如果出现,则将该元素的style.display属性设为''(显示),否则设为'none'(隐藏)。

示例说明一

下面是一个简单的HTML页面,实现了一个搜索框和一些搜索结果。我们要在搜索框中输入关键字,然后通过JavaScript动态显示/隐藏匹配的搜索结果:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>简单搜索功能示例</title>
  <style>
    .searchResult {
      margin-bottom: 10px;
      display: none;
    }
  </style>
</head>
<body>
  <input type="text" id="searchInput" placeholder="请输入关键字">
  <br>
  <div class="searchResult">
    <h3>搜索结果1</h3>
    <p>这是搜索结果1的详细内容。</p>
  </div>
  <div class="searchResult">
    <h3>搜索结果2</h3>
    <p>这是搜索结果2的详细内容。</p>
  </div>
  <div class="searchResult">
    <h3>搜索结果3</h3>
    <p>这是搜索结果3的详细内容。</p>
  </div>
  <script>
    var input = document.getElementById('searchInput');
    input.oninput = function() {
      var keyword = input.value;
      var elements = document.getElementsByClassName('searchResult');
      for (var i = 0; i < elements.length; i++) {
        var element = elements[i];
        var text = element.textContent || element.innerText;
        if (text.indexOf(keyword) >= 0) {
          element.style.display = '';
        } else {
          element.style.display = 'none';
        }
      }
    };
  </script>
</body>
</html>

示例说明二

我们还可以利用jQuery库来简化上述代码,使用filter()方法过滤搜索结果,并使用toggle()方法显示/隐藏匹配的结果。下面代码是使用jQuery实现相同功能的示例:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>简单搜索功能示例(jQuery版本)</title>
  <style>
    .searchResult {
      margin-bottom: 10px;
      display: none;
    }
  </style>
  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  <script>
    $(document).ready(function() {
      $('#searchInput').on('input', function() {
        var keyword = $(this).val();
        $('.searchResult').filter(function(){
          var text = $(this).text();
          return text.indexOf(keyword) >= 0;
        }).toggle();
      });
    });
  </script>
</head>
<body>
  <input type="text" id="searchInput" placeholder="请输入关键字">
  <br>
  <div class="searchResult">
    <h3>搜索结果1</h3>
    <p>这是搜索结果1的详细内容。</p>
  </div>
  <div class="searchResult">
    <h3>搜索结果2</h3>
    <p>这是搜索结果2的详细内容。</p>
  </div>
  <div class="searchResult">
    <h3>搜索结果3</h3>
    <p>这是搜索结果3的详细内容。</p>
  </div>
</body>
</html>

以上代码中,我们在页面头部引入了jQuery库,并在页面底部通过.ready()方法绑定了一个搜索框输入事件。在事件处理函数中,我们使用val()方法获取搜索关键字,使用filter()方法过滤搜索结果,并使用toggle()方法显示/隐藏匹配的结果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript实现简单搜索功能 - Python技术站

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

相关文章

  • JSONObject toJSONString错误的解决

    当使用Java中的JSONObject类的toJSONString()方法将Java对象序列化为Json字符串时,可能会出现错误。本文将提供一些错误的解决方法。 错误1:No serializer found 当使用toJSONString()方法将Java对象序列化为Json字符串时,可能会出现以下错误: org.codehaus.jackson.map.…

    Java 2023年5月26日
    00
  • SpringMVC日期类型参数传递实现步骤讲解

    SpringMVC是一个非常强大的框架,它提供了很多方便的功能,其中包括了日期类型参数的传递。下面将详细讲解SpringMVC日期类型参数传递的实现步骤。 实现步骤 首先在SpringMVC的配置文件中配置日期类型参数的解析器,为了方便起见,这里使用默认的解析器。 <mvc:annotation-driven /> 在Controller类中声明…

    Java 2023年5月20日
    00
  • spring整合redis以及使用RedisTemplate的方法

    Spring整合Redis以及使用RedisTemplate的方法 什么是Redis? Redis是一个开源的,高级的、基于内存的NoSQL数据库,常用于缓存、队列、分布式锁等应用。它支持多种数据结构,如字符串、哈希表、列表、集合、有序集合等。 Spring整合Redis 1. 环境搭建 首先需要引入Spring Data Redis模块,以及Jedis或L…

    Java 2023年5月19日
    00
  • Java8 Instant时间戳使用小记

    Java8 Instant时间戳使用小记 1. Instant是什么? Instant是Java8中新引入的一个时间类,它用于代表时间轴上的一个时间点。Instant以Unix时间戳的格式存储时间,精确到纳秒。 2. Instant的创建 创建Instant对象有多种方法,例如: 2.1. 通过ofEpochSecond方法创建 使用Unix时间戳(秒数)创…

    Java 2023年5月20日
    00
  • SpringBoot统一接口返回及全局异常处理高级用法

    下面我将为您详细讲解“SpringBoot统一接口返回及全局异常处理高级用法”的完整攻略。 1. 概述 在SpringBoot应用中,我们有时需要对接口的返回结果进行统一处理,并且需要对系统异常进行全局处理。为了达到这个目的,我们可以使用SpringBoot提供的@ControllerAdvice和@ExceptionHandler注解来实现统一接口返回及全…

    Java 2023年5月27日
    00
  • Struts中使用validate()输入校验方法详解

    关于“Struts中使用validate()输入校验方法详解”的完整攻略,下面是具体的内容: 1. 什么是validate()方法? 在Struts2中,validate()方法是对于输入进行校验的一种很重要的方式。在这个方法中,我们可以定义输入校验的方法,对于输入数据进行检查,如果不符合要求则返回一个错误信息,如果符合要求则不做处理。 2. validat…

    Java 2023年6月2日
    00
  • java-list创建的两种常见方式

    下面是Java中使用List创建的两种常见方式的详细解释和示例: 1. 使用ArrayList类创建List对象 ArrayList是Java中最常用的List实现类之一,它提供了一个可以自动扩容的动态数组,可以存储任何类型的对象。ArrayList的构造方法和内置方法都很简单,可以快速轻松地创建和操作List对象。 创建ArrayList对象 使用Arra…

    Java 2023年5月26日
    00
  • Mybatis超详细讲解构建SQL方法

    “Mybatis超详细讲解构建SQL方法”是一篇关于Mybatis框架中构建SQL方法的详细攻略。该攻略主要介绍了Mybatis框架中构建SQL的方式及其相关技巧。 前置知识 在学习本篇攻略前,需要对以下知识点有一定的了解: Mybatis框架的使用及基本概念 SQL语句的基本语法及特性 Java的基本语法及编程思想 构建SQL方法 在Mybatis框架中,…

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