JS实现table表格内针对某列内容进行即时搜索筛选功能

实现table表格内针对某列内容进行即时搜索筛选功能的攻略包括以下几个步骤:

  1. HTML结构设计

在设计HTML表格结构时,需要为搜索功能留出位置。可以在表格上方添加一个输入框,用户在输入框中输入筛选条件,表格会根据输入内容筛选匹配的数据。

例如:

<div>
  <label for="filter">搜索:</label>
  <input type="text" id="filter" name="filter">
</div>
<table>
  <thead>
    <tr>
      <th>姓名</th>
      <th>年龄</th>
      <th>地址</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>张三</td>
      <td>20</td>
      <td>北京市</td>
    </tr>
    <tr>
      <td>李四</td>
      <td>25</td>
      <td>上海市</td>
    </tr>
    <tr>
      <td>王五</td>
      <td>18</td>
      <td>广州市</td>
    </tr>
  </tbody>
</table>
  1. 获取筛选条件

在JS中,需要获取到输入框中用户输入的筛选条件。可以通过addEventListener()方法监听输入框的keyup事件,每次用户输入完成后都会触发该事件,获取输入框中的值并调用筛选函数。

例如:

var filterInput = document.querySelector('#filter');

filterInput.addEventListener('keyup', function() {
  var filterValue = this.value;
  filterRows(filterValue);
});
  1. 筛选匹配的行数据

在JS中,需要获取到所有表格行元素,并依次遍历判断是否匹配筛选条件,如果匹配则显示该行数据,否则隐藏该行数据。可以通过querySelectorAll()方法获取所有的表格行元素,并使用forEach()方法依次遍历行元素,判断某一列的值是否匹配筛选条件。

例如:

function filterRows(filterValue) {
  var rows = document.querySelectorAll('tbody tr');

  rows.forEach(function(row) {
    var name = row.querySelector('td:nth-child(1)').textContent;
    if (name.indexOf(filterValue) !== -1) {
      row.style.display = 'table-row';
    } else {
      row.style.display = 'none';
    }
  });
}

在这个例子中,我们筛选第一列内容(即姓名),querySelector()方法选择器中使用了:nth-child()伪类,表示选择该行中第一个<td>元素。

  1. 完整代码

完整的JS实现代码如下:

var filterInput = document.querySelector('#filter');

filterInput.addEventListener('keyup', function() {
  var filterValue = this.value;
  filterRows(filterValue);
});

function filterRows(filterValue) {
  var rows = document.querySelectorAll('tbody tr');

  rows.forEach(function(row) {
    var name = row.querySelector('td:nth-child(1)').textContent;
    if (name.indexOf(filterValue) !== -1) {
      row.style.display = 'table-row';
    } else {
      row.style.display = 'none';
    }
  });
}
  1. 示例说明

假设以上HTML和JS代码已经被加载到页面中,在输入框中输入时,表格中只有一行匹配,其他两行数据都被隐藏了。

例如:


姓名 年龄 地址
张三 20 北京市
李四 25 上海市
王五 18 广州市

当输入框中没有任何内容时,所有的表格行都应该显示出来。

例如:


姓名 年龄 地址
张三 20 北京市
李四 25 上海市
王五 18 广州市

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS实现table表格内针对某列内容进行即时搜索筛选功能 - Python技术站

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

相关文章

  • jQuery的end()方法使用详解

    下面是 “jQuery的end()方法使用详解” 的完整攻略。 一、概述 end()方法可以返回到前一个链式操作中的元素集合。如果在当前链式操作过程中使用了多个方法来筛选元素,那么end()方法可以回到最开始筛选的元素集合。 二、语法 end()方法的语法如下: $(selector) .method1() .method2() .end(); # 三、参数…

    jquery 2023年5月27日
    00
  • jQWidgets jqxGrid rowcollapse事件

    jQWidgets jqxGrid rowcollapse事件详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件工具包。jqxGrid是其中之一。本文将详细介绍jqxGrid的rowcollapse`事件,包括定义、语法和示例。 rowcollapse事件的定义 jqxGrid的rowcollapse事件行折叠时触发。通过使用ro…

    jquery 2023年5月10日
    00
  • jQWidgets jqxTabs disable()方法

    下面是关于jQWidgets jqxTabs disable()方法的完整攻略。 jQWidgets jqxTabs disable()方法概述 disable()方法是jQWidgets jqxTabs控件提供的一种方法,用于禁用一个或多个tab页面。当某个tab页面被禁用时,用户无法通过点击该页面的标签页来访问该页面的内容。这个方法可以通过调用控件实例的…

    jquery 2023年5月12日
    00
  • jQWidgets jqxEditor高度属性

    jQWidgets jqxEditor高度属性详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件和工具包。jqxEditor是Widgets组件于实现富文本编辑器的组件。本文将详细介绍jqxEditor的height属性,包括其作用、语法和示例。 jqxEditor height属性的基本语法 jqEditor的height属性的…

    jquery 2023年5月10日
    00
  • python3.x实现base64加密和解密

    实现Python3.x中的base64加密和解密,可以通过Python标准库中的base64模块来实现。 1. base64加密 1.1 代码实现 Python3.x中使用base64.b64encode()函数进行加密,该函数会将指定的字节串编码为base64格式,返回编码后的字节串。 具体的代码如下: import base64 def base64_e…

    jquery 2023年5月28日
    00
  • jQuery总体架构的理解分析

    jQuery是一种Javascript库,它提供了一系列的API函数和工具,使得开发者易于在网页中操作HTML文档、表单、事件、动画等。下面就来详细讲解jQuery总体架构的理解分析。 jQuery总体架构 首先,jQuery总体架构可以分为四个部分:选择器、DOM操作、事件和动画。具体如下: 选择器:jQuery内置了丰富的选择器函数,比如$()、$(“.…

    jquery 2023年5月28日
    00
  • jQuery UI Datepicker按钮图像选项

    jQuery UI的日期选择器小部件提供了许多选项,可以自定义日期选择器的外观和行为。其中,buttonImage选项用于指定日期选择器按钮的图像。本文将详细介绍buttonImage选项的语法和用法,并提供两个示例说明。 语法 以下是buttonImage选项的基本语法: $(selector).datepicker({ buttonImage: &quo…

    jquery 2023年5月9日
    00
  • jQWidgets jqxPopover arrowOffsetValue属性

    以下是关于 jQWidgets jqxPopover 组件中 arrowOffsetValue 属性的详细攻略。 jQWidgets jqxPopover arrowOffsetValue 属性 jQWidgets jqxPopover 组件的 arrowOffsetValue 属性用于设置箭头偏移量,以像素为单位。 语法 $(‘#popover’).jqx…

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