欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JS实现table表格内针对某列内容进行即时搜索筛选功能

程序员文章站 2022-04-20 23:10:49
本文实例讲述了js实现table表格内针对某列内容进行即时搜索筛选功能。分享给大家供大家参考,具体如下: 往往有些时候,我们把数据从数据库读取出来,显示到table里面,...

本文实例讲述了js实现table表格内针对某列内容进行即时搜索筛选功能。分享给大家供大家参考,具体如下:

往往有些时候,我们把数据从数据库读取出来,显示到table里面,而此时来了个新需求,要在一个搜索框内输入关键字,表格的内容进行即时的筛选。

而即时触发进行数据库的查询,再回调显示,就显得慢,拖累服务器,降低用户体验度,这时,要是有个纯js操作,进行表格某列的即时筛选,这样既能提高搜索速度,也不用占用服务器资源,用户自然也满意。

实现如下,先看效果图,

开始状态:

JS实现table表格内针对某列内容进行即时搜索筛选功能

在输入框内输入‘e',表格即时进行筛选,筛选表格内包含有‘e'的行,没有‘e'的进行隐藏,使用在线html/js/css运行工具http://tools.jb51.net/code/htmljsrun,测试运行效果如下图所示:

JS实现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程序设计有所帮助。