
本教程详细介绍了如何利用j*ascript增强html表格的搜索功能。通过修改基础的单列过滤逻辑,我们将实现一个高效的多列文本搜索方案,使用户能够在一个输入框中同时对表格的多个字段(如姓名、国家)进行模糊匹配,从而显著提升数据检索的灵活性和用户体验。
在网页开发中,表格是展示结构化数据的重要方式,而为表格添加搜索过滤功能则是提升用户体验的关键一环。当数据量较大时,用户往往需要根据多个条件进行筛选。本文将指导您如何使用纯J*aScript实现一个支持多列搜索的HTML表格过滤功能,允许用户在一个搜索框中同时匹配表格中的不同列数据。
首先,我们需要一个包含输入框和数据表格的基础HTML结构。搜索输入框将用于接收用户的查询文本,而表格则包含需要被过滤的数据。
<input type="text" id="myInput" onkeyup="myFunction()" placeholder="搜索姓名或国家...">
<table id="myTable">
<tr class="header">
<th style="width:60%;">姓名</th>
<th style="width:40%;">国家</th>
</tr>
<tr>
<td>Alfreds Futterkiste</td>
<td>德国</td>
</tr>
<tr>
<td>Berglunds snabbkop</td>
<td>瑞典</td>
</tr>
<tr>
<td>Island Trading</td>
<td>英国</td>
</tr>
<tr>
<td>Koniglich Essen</td>
<td>德国</td>
</tr>
</table>在这个结构中:
AI Surge Cloud
低代码数据分析平台,帮助企业快速交付深度数据
87
查看详情
接下来,我们将编写myFunction函数来处理搜索逻辑。核心思想是遍历表格的每一行,获取指定列(例如第一列和第二列)的文本内容,然后判断这些内容是否包含用户的搜索关键词。如果包含,则显示该行;否则,隐藏该行。
<script>
function myFunction() {
// 声明变量
var input, filter, table, tr, td, td1, i, txtValue, txtValue1;
// 获取搜索输入框及其值
input = document.getElementById("myInput");
filter = input.value.toUpperCase(); // 将搜索关键词转换为大写,实现不区分大小写的搜索
// 获取表格及其所有行
table = document.getElementById("myTable");
tr = table.getElementsByTagName("tr");
// 遍历所有表格行(跳过表头行,如果表头行有class="header"可以从1开始)
// 注意:此处假设第一行是表头,所以从索引1开始遍历数据行
for (i = 0; i < tr.length; i++) {
// 获取当前行的第一个和第二个<td>元素
td = tr[i].getElementsByTagName("td")[0]; // 第一列 (姓名)
td1 = tr[i].getElementsByTagName("td")[1]; // 第二列 (国家)
// 确保当前行至少有第一个<td>元素
if (td) {
// 获取第一个<td>的文本内容
txtValue = td.textContent || td.innerText;
// 获取第二个<td>的文本内容
// 注意:如果td1可能不存在,此处应添加td1的检查,见“注意事项”
txtValue1 = td1 ? (td1.textContent || td1.innerText) : "";
// 判断任一列的文本内容是否包含搜索关键词
if (txtValue.toUpperCase().indexOf(filter) > -1 || txtValue1.toUpperCase().indexOf(filter) > -1) {
tr[i].style.display = ""; // 显示匹配的行
} else {
tr[i].style.display = "none"; // 隐藏不匹配的行
}
}
}
}
</script>
, filter, table, tr, td, td1, i, txtValue, txtValue1 等变量用于存储DOM元素、搜索关键词、循环索引和单元格文本。通过上述步骤,我们成功地为HTML表格添加了强大的多列搜索过滤功能。这个简单的J*aScript解决方案显著提升了用户在大型数据集中查找信息的效率和体验。您可以根据实际需求,在此基础上进行扩展和优化,例如增加更多列的搜索支持、提供更高级的搜索选项,或结合其他J*aScript库以实现更复杂的交互。
以上就是J*aScript实现HTML表格多列搜索过滤功能教程的详细内容,更多请关注其它相关文章!
相关文章:
Win10桌面图标出现小盾牌怎么办 Win10去除UAC图标教程【解决】
c++如何使用Meson构建系统_c++比CMake更快的构建工具
Go Martini框架:动态服务解码后的图片内容
黑鲨3Pro怎样在相册开漫画风滤镜_iPhone黑鲨3Pro相册开漫画风滤镜【趣味滤镜】
qq音乐在线播放入口_qq音乐电脑版登录链接
在FastAPI中利用lifespan与依赖注入高效管理Redis连接池
PHP表单提交后函数重复执行的解决方案:管理$_POST数据
如何在J*a中使用Locale处理多语言环境
电脑屏幕颜色不舒服怎么办_Windows夜间模式与色彩校准教程【护眼技巧】
jQuery Mask 插件中实现电话号码固定前导零的教程
使用J*aScript检测输入元素是否包含在特定类中
生成rdflib自定义SPARQL函数:参数匹配与实践指南
在J*a中如何使用Exception包装底层异常_异常包装与信息传递方法说明
微信语音通话掉线如何解决 微信语音通话稳定优化方法
聚水潭ERP登录页面入口 聚水潭ERP官网登录界面
2306选座时如何选靠窗位置_12306选座靠窗座位查看方法解析
漫蛙2(台版)官方入口地址 漫蛙2(台版)正版漫画网页端
Django通过AJAX异步上传图片并保存至模型的完整指南
没有大陆身份证/银行卡如何实名微信? 亲测有效的几种方法分享
C++如何使用AddressSanitizer(ASan)_C++调试工具中检测内存访问错误的利器
解决macOS上安装pyhdf时‘hdf.h’文件缺失的编译错误
J*a TimerTask文件监控:HashMap状态管理与常见陷阱规避指南
PyTorch模型训练准确率不提升:诊断与修复常见指标计算错误
如何使用Node.js csv 包按条件移除含空字段的CSV记录
C#中解析不规范的HTML为XML 常见的坑与解决办法
Python多线程中正确使用sigwait处理SIGALRM信号
提升屏幕阅读器对“m”时间单位的播报准确性:HTML与CSS组合解决方案
C++如何实现一个装饰器模式_C++设计模式之动态地给对象添加额外职责
PrimeNG Sidebar背景色自定义指南:CSS覆盖与主题化实践
抖音网页版平台入口 抖音网页版官网在线访问教程
如何在CSS中使用浮动制作导航栏_float实现水平菜单
如何解决电商平台定制报价请求的“黑洞”问题,SprykerQuoteRequest模块助你提升客户体验与销售效率
Yandex搜索引擎官方地址 俄罗斯网络世界的主要入口
汽水音乐在线版入口_汽水音乐网页播放手册
UE5.7引擎表现爆炸优化无敌!5090跑4K稳定60FPS
解决PHP会话Cookie在跨域请求中不保留的问题
俄罗斯浏览器官网直达链接 俄罗斯浏览器最新在线入口导航
Python多版本共存与虚拟环境管理深度指南
Odoo 16:在表单视图中基于当前记录动态修改Tree视图属性
HTML5原生日期选择器与jQuery UI:实现日期选择器的联动与程序化控制
Composer的 COMPOSER_PROCESS_TIMEOUT 配置项有什么用_解决因执行时间过长而失败的Composer脚本
TikTok国际版官网直达_TikTok国际版官网直达进入在线观看
漫蛙网页登录入口 漫蛙漫画官方授权网址
Centos/Linux 系统下安装 composer 的完整步骤
在J*a中如何捕获IndexOutOfBoundsException_索引越界异常防护方法说明
《马克思佩恩3》早期版本曝光 UI设计曾多次调整!
C++的std::forward_list怎么用_C++ STL中单向链表容器的特点与应用
实现全屏滚动与导航点:专业教程
C++如何连接MySQL数据库_C++使用Connector/C++操作MySQL数据库教程
学习通网页版官方登录 超星学习通电脑端入口指南