JavaScript 中过滤表格
在今天的文章中,我们将看到如何使用纯 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 中隐藏表格行
发布时间:2024/03/18 浏览次数:184 分类:JavaScript
-
JavaScript 不一定有任何可以直接隐藏表格内容的预定义函数。更准确地说,有 jQuery 的 toggle() 函数和 hide()、show() 函数,它们依次执行以按下行并展开它们。
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 也用于在单击后禁用按钮。
在 JavaScript 的警报框中显示变量值
发布时间:2024/03/18 浏览次数:166 分类:JavaScript
-
在本文中,我们将通过不同的示例了解 JavaScript 中的 Alert 方法是什么,以及 JavaScript 中警报框的用途和好处。