迹忆客 专注技术分享

当前位置:主页 > 学无止境 > WEB前端 > JavaScript >

JavaScript 中过滤表格

作者:迹忆客 最近更新:2024/03/18 浏览次数:

在今天的文章中,我们将看到如何使用纯 JavaScript 过滤表格。

表是行和列(表数据)的结构化数据集。在电子表格中,你可以快速轻松地查找表明不同数据类型之间存在某种关联的值,例如人员及其年龄、一周中的某一天或本地游泳池的营业时间。

HTML 表格是使用 <table> 标签定义的。每个表格行都使用 <tr> 标签定义。

表的标题是使用 <th> 标记定义的。默认情况下,表格标题为粗体并居中。单元格是使用 <td> 标记定义的。


在 JavaScript 中使用 getElementsByTagName()indexOf() 过滤表格

getElementsByTagName() 是 JavaScript 提供的内置 document 方法,它返回 tag 与指定标签名称匹配的 NodeList 对象/元素。返回实时 HTML 集合以及搜索中的根节点。

getElementsByTagName() 将其名称作为输入参数。这是一个必需参数,用于指定必须匹配的 HTML 属性的 tagName

如果找到任何匹配的元素,则返回匹配的 DOM 元素对象;否则,它返回 null

因此,假设我们有用户以及电子邮件 ID 和姓名。我们想找出电子邮件 id 以 gmail.com 结尾的用户。

我们可以创建搜索输入,我们可以在其中输入搜索查询。

<input type="text" id="searchInput" onkeyup="myFunction()" placeholder="Search for names, email." title="Type in a name">

<table id="userTable">
  <tr class="header">
    <th style="width:60%;">Name</th>
    <th style="width:40%;">Email</th>
  </tr>
  <tr>
    <td>Alfreds Futterkiste</td>
    <td>alfreds@example.com</td>
  </tr>
  <tr>
    <td>Berglunds snabbkop</td>
    <td>snabbkop@gmail.com</td>
  </tr>
  <tr>
    <td>John Doe</td>
    <td>john@dummy.com</td>
  </tr>
  <tr>
    <td>Magazzini</td>
    <td>magazzini@gmail.com</td>
  </tr>
</table>

现在,让我们使用 getElementById() 从搜索输入框中提取值。为了解决区分大小写的问题,我们可以将值转换为大写或小写。

下一步是使用 getElementsByTagName() 提取表格内容和所有表格行。

提取所有行后,使用 for 循环遍历所有行以提取行内的单个单元格。最初,通过将显示属性更改为 none 来隐藏所有行。

function myFunction() {
  var input, filter, table, tr, td, cell, i, j;
  filter = document.getElementById('searchInput').value.toLowerCase();
  table = document.getElementById('userTable');
  tr = table.getElementsByTagName('tr');
  for (i = 1; i < tr.length; i++) {
    tr[i].style.display = 'none';
    const tdArray = tr[i].getElementsByTagName('td');
    for (var j = 0; j < tdArray.length; j++) {
      const cellValue = tdArray[j];
      if (cellValue && cellValue.innerHTML.toLowerCase().indexOf(filter) > -1) {
        tr[i].style.display = '';
        break;
      }
    }
  }
}

使用 getElementsByTagName,我们可以找到该特定行中存在的所有 td 的数组。现在检查每个单元格值,它是否包含搜索输入。

如果搜索输入与单元格内容匹配,则取消隐藏该行。

现在让我们运行上面的代码并开始输入 gmail;它将更新表格。

输出:

上一篇:在 JavaScript 中隐藏表格行

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 JavaScript 中隐藏表格行

发布时间:2024/03/18 浏览次数:184 分类:JavaScript

JavaScript 不一定有任何可以直接隐藏表格内容的预定义函数。更准确地说,有 jQuery 的 toggle() 函数和 hide()、show() 函数,它们依次执行以按下行并展开它们。

JavaScript 查找表

发布时间:2024/03/18 浏览次数:112 分类:JavaScript

在今天的帖子中,我们将学习使用 JavaScript 中的一种简单方式创建查找表。

JavaScript 表格滚动

发布时间:2024/03/18 浏览次数:139 分类:JavaScript

要在网页中滚动表格内容,我们可以依赖一些 JavaScript 属性来依次执行任务。overflow、overflowX 和 overflowY 的使用使表格可滚动且可访问。

用 JavaScript 检查按钮是否被点击

发布时间:2024/03/18 浏览次数:147 分类:JavaScript

使用 JavaScript 检查按钮是否被点击可以通过三种方法进行。在 HTML 中添加 onclick 属性,将脚本标签中的 onclick 初始化为方法,使用 EventListener 可能是更好的方法。

JavaScript 更改按钮文本

发布时间:2024/03/18 浏览次数:128 分类:JavaScript

本教程展示了如何使用 JavaScript 更改按钮文本,并演示了使用 jQuery 更改按钮文本。

JavaScript 禁用按钮单击

发布时间:2024/03/18 浏览次数:50 分类:JavaScript

要通过 JavaScript 约定禁用按钮单击,需要选择按钮的实例并在其上应用 disabled 属性。jQuery 属性 disabled 也用于在单击后禁用按钮。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便