
本教程详细介绍了如何使用j*ascript为html表格实现多列实时搜索过滤功能。通过修改`myfunction`,您可以同时对表格中的多个列(如名称和国家)进行内容匹配,从而提升用户数据查找的效率和体验。文章包含完整的html和j*ascript代码示例,并解释了实现逻辑及注意事项,帮助开发者快速掌握并应用此技术。
在现代Web应用中,用户经常需要从大量表格数据中快速定位特定信息。客户端实时搜索过滤功能能够显著提升用户体验。通常,我们可能只需要对表格的某一列进行搜索,但实际需求往往更为复杂,需要同时搜索多个列的内容。本教程将指导您如何通过简单的J*aScript代码修改,实现HTML表格的多列实时搜索过滤。
首先,我们需要一个基本的HTML表格结构和一个用于输入搜索关键词的文本框。搜索框通过onkeyup事件绑定一个J*aScript函数,以便在用户输入时实时触发过滤。
<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>Germany</td>
</tr>
<tr>
<td>Berglunds snabbkop</td>
<td>Sweden</td>
</tr>
<tr>
<td>Island Trading</td>
<td>UK</td>
</tr>
<tr>
<td>Koniglich Essen</td>
<td>Germany</td>
</tr>
</table>在这个结构中:
元素代表一个单元格,对应表格的一列。实现单列搜索的局限性最初的单列搜索实现通常会聚焦于表格的第一列。例如,以下J*aScript代码只对“姓名”列进行过滤: function myFunction() {
var input, filter, table, tr, td, i, txtValue;
input = document.getElementById("myInput");
filter = input.value.toUpperCase(); // 获取搜索关键词并转为大写,实现不区分大小写搜索
table = document.getElementById("myTable");
tr = table.getElementsByTagName("tr"); // 获取所有行
for (i = 0; i < tr.length; i++) {
// 过滤掉标题行
if (tr[i].classList.contains('header')) {
continue;
}
td = tr[i].getElementsByTagName("td")[0]; // 只获取第一列(姓名)的单元格
if (td) {
txtValue = td.textContent || td.innerText; // 获取单元格文本内容
if (txtValue.toUpperCase().indexOf(filter) > -1) { // 如果文本包含搜索关键词
tr[i].style.display = ""; // 显示该行
} else {
tr[i].style.display = "none"; // 隐藏该行
}
}
}
}这段代码的问题在于 td = tr[i].getElementsByTagName("td")[0]; 这一行,它明确指定只获取索引为 0 的单元格(即第一列)。如果我们需要同时搜索“姓名”和“国家”两列,这种方法就无法满足需求。 实现多列搜索过滤要实现多列搜索,我们需要修改 myFunction,使其能够同时检查目标列的文本内容。关键在于获取所有相关的列,并使用逻辑或(||)操作符来组合搜索条件。 以下是修改后的 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"); // 获取表格的所有行
// 遍历所有表格行,隐藏不匹配搜索查询的行
for (i = 0; i < tr.length; i++) {
// 跳过表格标题行
if (tr[i].classList.contains('header')) {
continue;
}
// 获取第一列(姓名)和第二列(国家)的单元格
td = tr[i].getElementsByTagName("td")[0]; // 第一列
td1 = tr[i].getElementsByTagName("td")[1]; // 第二列
// 确保单元格存在,避免潜在错误
if (td && td1) {
txtValue = td.textContent || td.innerText; // 获取第一列文本内容
txtValue1 = 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"; // 否则隐藏该行
}
} else {
// 如果行数据不完整,例如只有一列,也隐藏该行或根据需求处理
tr[i].style.display = "none";
}
}
}
</script>代码解析
|
以上就是HTML表格多列内容实时搜索过滤教程的详细内容,更多请关注其它相关文章!
# java
# javascript
# 第一个
# 递归
# 单元格
# red
# ai
# ssl
# 浏览器
# html
# seo优化被逮
# 网站建设个人模板
# 怀集网站建设
# 湖北seo营销培训
# 济源福建网站优化推广
# 秦皇岛网站建设服务
# 绥化seo技巧必看
# seo推广网站联系电话
# 产品推广营销方案范文
# 重庆建设空调网站
# 跳过
# 表单
# 行数
# 运算符
# 只需
# 第二个
# 多个
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
优化推广96088 】
【
技术知识133117 】
【
IDC资讯59369 】
【
网络运营7196 】
【
IT资讯61894 】
相关推荐:
《sketchbook》选中部分图案移动方法
CodeIgniter 3 中基于 MySQL 数据高效生成动态图表教程
c++如何链接Boost库_c++准标准库的集成与使用
126手机126邮箱登录_126邮箱手机登录入口官网
如何在CSS中实现盒模型多列间距_grid-gap与padding结合
《桃源记2》资源采集攻略
电脑“无法访问指定设备、路径或文件”怎么办?五种权限设置方法
实现可重用自定义Python Range类
Git命令与VS Code UI操作的对应关系解析
Dash应用中自定义HTML页面标题与网站图标(F*icon)的实用指南
电脑桌面图标怎么变大变小_Windows个性化设置第一课【新手入门】
《procreate》绘制渐变效果教程
抖音商城官网是什么_抖音商城官方网址与访问方法
在J*a中如何实现类的继承与方法重用_OOP继承方法重用技巧分享
厨房地面防滑垫的油污怎么洗? 机洗和手洗防滑垫的注意事项
高效调试PHP大型嵌套数组:JSON序列化与可视化工具实践
解决异步Python机器人中同步操作的阻塞问题
火狐浏览器无法自动更新怎么办 手动更新火狐浏览器到最新版本【解决】
《海豚家》注销账号方法
windows10怎么更改下载路径_windows10默认存储位置修改教程
京东快递包裹信息查询入口 京东快递官方查询平台入口
《下一站江湖2》风神腿获取攻略
高德地图导航路线偏差报警频繁怎么办 高德地图路线偏差修复与优化方法
从J*a应用程序中导出MySQL表数据的技术指南
Excel如何快速找到并断开外部数据源链接_Excel外部数据源断开方法
J*aScript桌面应用_Electron多进程架构实战
泰拉瑞亚水晶无法放置问题
Linux如何优化系统启动流程_Linux启动项优化方案
《合金装备4》有望推出重制版!制作人发话了
解决CSS布局中意外顶部空白问题的教程
C++ priority_queue怎么用_C++优先队列底层实现与自定义比较器
Win10运行窗口在哪里打开 Win10调出运行命令框快捷键【技巧】
猫眼电影app怎么查询电影院的营业时间_猫眼电影影院营业时间查询教程
iPhone17Pro如何连接蓝牙耳机_iPhone17Pro蓝牙设备配对与连接方法介绍
易车网官网直达入口 易车网在线登录入口
《虎扑》取消评分记录方法
蛙漫2(台版)正版官网 2025免费网页版分享
手机雨课堂网页版入口免登录 雨课堂网页版可点击直接进入
优化Leaflet弹出层图片显示:条件渲染策略
视频号视频怎么提取文案?提取的文案如何优化与使用?
键盘测试软件哪个好_键盘故障检测工具推荐
sublime如何配置PHP开发环境_在sublime中运行与调试PHP代码
抖音如何解除|直播|权限绑定_抖音关闭并解绑|直播|功能的方法
《爱南宁》认证电动车方法
在J*a里什么是行为抽象_抽象行为对代码复用的提升作用
J*aScript模拟悬停与点击:自动化网页动态元素交互指南
PHP动态导航按钮:根据用户登录状态切换链接与文本
咸鱼怎么设置仅粉丝可见的动态_咸鱼动态粉丝可见设置方法
申通快递物流信息查询 申通快递包裹状态追踪
C++如何实现单例模式_C++线程安全的单例模式写法
2025-10-19
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。