JS实现Table表格某列即时搜索筛选功能

作者:霁月时间:2026-10-22 14:18:48浏览:362

本文介绍一种纯JavaScript实现的Table表格列即时搜索筛选方案。通过在客户端对已加载数据进行关键字匹配与DOM隐藏操作,避免频繁请求服务器,从而显著提升搜索响应速度并降低服务器负载,优化用户交互体验。

Table表格即时搜索筛选方案概述

本文详细介绍如何使用JavaScript实现针对Table表格特定列内容的即时搜索与筛选功能。

在Web开发中,常需将数据库数据渲染至HTML表格。当业务需求增加时,往往需要在搜索框中输入关键字,并实时对表格内容进行动态筛选。

若每次输入均触发后端数据库查询,不仅响应延迟高、占用服务器资源,还会严重降低用户体验。采用纯前端JavaScript方案,在本地对表格列进行即时筛选,既能保证搜索速度,又无需消耗服务器资源,用户满意度更高。

功能效果与测试演示

具体实现逻辑如下,首先参考效果演示。

初始状态下,表格显示全部数据。

Table表格即时搜索筛选方案概述

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

Table表格即时搜索筛选方案概述

核心代码实现逻辑

核心实现代码逻辑如下。


<!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编程实践有所帮助。

作者最新文章