JS实现Table表格某列即时搜索筛选功能
本文介绍一种纯JavaScript实现的Table表格列即时搜索筛选方案。通过在客户端对已加载数据进行关键字匹配与DOM隐藏操作,避免频繁请求服务器,从而显著提升搜索响应速度并降低服务器负载,优化用户交互体验。
Table表格即时搜索筛选方案概述
本文详细介绍如何使用JavaScript实现针对Table表格特定列内容的即时搜索与筛选功能。
在Web开发中,常需将数据库数据渲染至HTML表格。当业务需求增加时,往往需要在搜索框中输入关键字,并实时对表格内容进行动态筛选。
若每次输入均触发后端数据库查询,不仅响应延迟高、占用服务器资源,还会严重降低用户体验。采用纯前端JavaScript方案,在本地对表格列进行即时筛选,既能保证搜索速度,又无需消耗服务器资源,用户满意度更高。
功能效果与测试演示
具体实现逻辑如下,首先参考效果演示。
初始状态下,表格显示全部数据。

当在输入框中输入字符“e”时,脚本立即执行筛选逻辑:保留包含“e”的行,隐藏不包含该字符的行。使用在线HTML/JS/CSS运行工具http://tools.jb51.net/code/HtmlJsRun进行实时测试,效果如截图所示。

核心代码实现逻辑
核心实现代码逻辑如下。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>www.jb51.net JS搜索筛选table列</title>
</head>
<script type="text/javascript">
function onSearch(obj){//js函数开始
setTimeout(function(){//因为是即时查询,需要用setTimeout进行延迟,让值写入到input内,再读取
var storeId = document.getElementById('store');//获取table的id标识
var rowsLength = storeId.rows.length;//表格总共有多少行
var key = obj.value;//获取输入框的值
var searchCol = 0;//要搜索的哪一列,这里是第一列,从0开始数起
for(var i=1;i<rowsLength;i++){//按表的行数进行循环,本例第一行是标题,所以i=1,从第二行开始筛选(从0数起)
var searchText = storeId.rows[i].cells[searchCol].innerHTML;//取得table行,列的值
if(searchText.match(key)){//用match函数进行筛选,如果input的值,即变量 key的值为空,返回的是ture,
storeId.rows[i].style.display='';//显示行操作,
}else{
storeId.rows[i].style.display='none';//隐藏行操作
}
}
},200);//200为延时时间
}
</script>
<body>
<div > <input name="key" type="text" id="key" onkeydown="onSearch(this)" value="" /></div>
<table width="200" border="1" id="store"><!-- id与函数的getId一致 -->
<tr bgcolor="#CCCCCC">
<td>name</td>
<td> </td>
<td> </td>
</tr>
<td>good</td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>better</td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>best</td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>bad</td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>worse</td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>worst</td>
<td> </td>
<td> </td>
</tr>
</table>
</body>
</html>
如需进一步了解JavaScript相关技术,可参考本站专题:《JavaScript表格(table)操作技巧大全》、《JavaScript操作DOM技巧总结》、《JavaScript数组操作技巧总结》、《JavaScript遍历算法与技巧总结》、《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript查找算法技巧总结》及《JavaScript错误与调试技巧总结》。
希望本文提供的解决方案对您的JavaScript编程实践有所帮助。
tween.js 内存泄漏预防:怎么正确停止动画与清理对象
2026-11-05 15:52:56
Vue或React项目中为何不建议直接使用JS刷新页面
2026-11-05 13:57:30
哪里可以找到高质量的免费JS脚本资源?
2026-11-05 13:15:03
JS数组对象怎么根据指定ID字段去重
2026-11-04 21:41:10
JS数组去重方法性能对比:Set、Map与Filter谁更快
2026-11-04 16:14:15
