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


Posted in Javascript onMay 11, 2018

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

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

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

实现如下,先看效果图,

开始状态:

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

在输入框内输入‘e',表格即时进行筛选,筛选表格内包含有‘e'的行,没有‘e'的进行隐藏,使用在线HTML/JS/css运行工具http://tools.3water.com/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>3water.com 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 相关文章推荐
PJ Blog修改-禁止复制的代码和方法
Oct 25 Javascript
跨域表单提交状态的变相判断代码
Nov 12 Javascript
Jquery封装tab自动切换效果的具体实现
Jul 13 Javascript
实现动画效果核心方式的js代码
Sep 27 Javascript
在JavaScript应用中使用RequireJS来实现延迟加载
Jul 01 Javascript
vue.js表格分页示例
Oct 18 Javascript
html、css和jquery相结合实现简单的进度条效果实例代码
Oct 24 Javascript
vue-cli3.0使用及部分配置详解
Aug 29 Javascript
微信小程序里引入SVG矢量图标的方法
Sep 20 Javascript
vue 解决路由只变化参数页面组件不更新问题
Nov 05 Javascript
微信小程序事件流原理解析
Nov 27 Javascript
基于JavaScript实现贪吃蛇游戏
Mar 16 Javascript
node前端开发模板引擎Jade的入门
May 11 #Javascript
Node.js 使用jade模板引擎的示例
May 11 #Javascript
Node.js Express安装与使用教程
May 11 #Javascript
Node.js创建HTTP文件服务器的使用示例
May 11 #Javascript
Node.js引入UIBootstrap的方法示例
May 11 #Javascript
Node.js使用Angular简单示例
May 11 #Javascript
Node.js 使用AngularJS的方法示例
May 11 #Javascript
You might like
制作美丽的拉花
2021/03/03 冲泡冲煮
对象失去焦点时自己动提交数据的实现代码
2012/11/06 PHP
PHP实现的增强性mhash函数
2015/05/27 PHP
php使用PDO事务配合表格读取大量数据插入操作实现方法
2017/02/16 PHP
用javascript实现无刷新更新数据的详细步骤 asp
2006/12/26 Javascript
为radio类型的INPUT添加客户端脚本(附加实现JS来禁用onClick事件思路代码)
2010/11/11 Javascript
window.returnValue使用方法示例介绍
2014/07/03 Javascript
Ubuntu 16.04 64位中搭建Node.js开发环境教程
2016/10/19 Javascript
jqGrid翻页时数据选中丢失问题的解决办法
2017/02/13 Javascript
angularjs指令之绑定策略(@、=、&amp;)
2017/04/13 Javascript
VsCode新建VueJs项目的详细步骤
2017/09/23 Javascript
js 只比较时间大小的实例
2017/10/26 Javascript
详解Vue webapp项目通过HBulider打包原生APP
2018/06/29 Javascript
详解mpvue中使用vant时需要注意的onChange事件的坑
2019/05/16 Javascript
微信小程序跨页面数据传递事件响应实现过程解析
2019/12/19 Javascript
js面试题之异步问题的深入理解
2020/09/20 Javascript
vue 使用localstorage实现面包屑的操作
2020/11/16 Javascript
[02:36]DOTA2英雄基础教程 斯拉克
2013/11/29 DOTA
Python中的XML库4Suite Server的介绍
2015/04/14 Python
Python写入CSV文件的方法
2015/07/08 Python
TensorFlow安装及jupyter notebook配置方法
2017/09/08 Python
对Python3中dict.keys()转换成list类型的方法详解
2019/02/03 Python
Python装饰器实现方法及应用场景详解
2020/03/26 Python
python 多线程共享全局变量的优劣
2020/09/24 Python
CSS3实现类似翻书效果的过渡动画的示例代码
2019/09/06 HTML / CSS
Agoda西班牙:全球特价酒店预订
2017/06/03 全球购物
菲律宾旅游网站:Expedia菲律宾
2017/10/11 全球购物
Fox Racing英国官网:越野摩托车和山地自行车服装
2020/02/26 全球购物
js正则匹配markdown里的图片标签的实现
2021/03/24 Javascript
采购主管工作职责
2013/12/12 职场文书
机关门卫制度
2014/02/01 职场文书
中介业务员岗位职责
2014/04/09 职场文书
初一新生军训方案
2014/05/22 职场文书
通讯稿格式及范文
2015/07/22 职场文书
mysql5.7使用binlog 恢复数据的方法
2021/06/03 MySQL
解决pytorch 损失函数中输入输出不匹配的问题
2021/06/05 Python