javascript实现简单搜索功能

yizhihongxing

要实现简单的搜索功能,需要使用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日

相关文章

  • 常见的线程池调度算法有哪些?

    以下是关于常见的线程池调度算法的完整使用攻略: 常见的线程池调度算法 常见的线程调度算法以下几种: 1. 固定大小线程池 固定大小线程池是指线程池中的线程数量是固定的,不随着任务的增加而增加。当线程池中的线程都在执行任务时,新的任务会被放入任务队列中等待。 以下是一个使用固定大小线程池的示例: ExecutorService executorService …

    Java 2023年5月12日
    00
  • java使用common-fileupload实现文件上传

    下面是使用Commons FileUpload实现Java文件上传的完整攻略: 前提条件 在使用Commons FileUpload之前,需要确保你已经满足以下的条件: 已经安装了Java SDK(至少是1.6或以上版本) 已经使用Eclipse等集成开发环境,或者手动配置好了Java的CLASSPATH。 已经有一个能够接受文件上传请求的Java Web应…

    Java 2023年5月20日
    00
  • SpringMVC @GetMapping注解路径冲突问题解决

    在 SpringMVC 中,我们可以使用 @GetMapping 注解来处理 GET 请求。但是,有时候我们会遇到 @GetMapping 注解路径冲突的问题,本文将详细讲解这个问题的原因和解决方法,并提供两个示例说明。 1. 原因分析 在 SpringMVC 中,@GetMapping 注解用于处理 GET 请求,并指定请求的 URL 路径。如果多个 @G…

    Java 2023年5月18日
    00
  • Java使用Maven BOM统一管理版本号的实现

    Java使用Maven BOM(Bill Of Materials)可以统一管理项目库依赖的版本号,避免了在POM文件中重复声明版本号的冗余问题,并且可以减轻开发者手动维护库依赖版本的工作量。 以下是Java使用Maven BOM统一管理版本号的实现攻略: 1.创建BOM项目 首先,创建一个Maven项目,称为“BOM项目”。在pom.xml文件中定义BOM…

    Java 2023年5月19日
    00
  • OpenGL ES 矩阵变换及其数学原理详解(五)

    “OpenGL ES 矩阵变换及其数学原理详解(五)”这篇文章主要讲解了OpenGL ES中矩阵变换的相关知识和数学原理。文章详细介绍了矩阵变换的分类、矩阵乘法的实现方法以及如何将多个矩阵相乘得到最终的变换矩阵。本文也涉及了矩阵的分解以及常见的变换操作,如缩放、平移、旋转等。同时,本文还通过示例展示了如何使用矩阵变换实现精灵动画效果。 本文通过多个示例详细说…

    Java 2023年5月26日
    00
  • 基于Struts文件上传(FormFile)详解

    基于Struts文件上传(FormFile)详解 1. 引入依赖 首先,需要在项目中引入struts-fileupload库。这个库是用来实现文件上传功能的。在项目的pom.xml文件中,添加以下依赖: <dependency> <groupId>commons-fileupload</groupId> <artif…

    Java 2023年5月20日
    00
  • java实现简单日期计算功能

    下面我就给您讲解一下Java实现简单日期计算功能的完整攻略。 步骤一:引入相关类库 在Java中,要实现日期计算功能首先需要用到java.util包中的Date类和Calendar类。因此,我们需要在代码中引入这两个类: import java.util.Calendar; import java.util.Date; 步骤二:获取当前日期 获取当前日期可以…

    Java 2023年5月20日
    00
  • 创造世界上最简单的 PHP 开发模式第1/5页

    下面我将详细讲解如何创造世界上最简单的 PHP 开发模式。 步骤1:准备工作 在开始之前,需要确保已经安装了PHP环境和开发工具,例如使用xampp,wampserver或者直接安装PHP和Apache。如果你还没有安装,请先进行安装。 步骤2:创建项目文件夹 首先,我们需要创建一个新的项目文件夹,并将其命名为“myproject”。可以按照以下步骤进行操作…

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