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 相关文章推荐
javascript第一课
Feb 27 Javascript
JavaScript读取中文cookie时的乱码问题的解决方法
Oct 14 Javascript
js 页面刷新location.reload和location.replace的区别小结
Dec 24 Javascript
javascript/jquery获取地址栏url参数的方法
Mar 05 Javascript
详解JavaScript中setSeconds()方法的使用
Jun 11 Javascript
jquery获取复选框checkbox的值的简单实现方法
May 26 Javascript
gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)
Aug 24 Javascript
JS声明式函数与赋值式函数实例分析
Dec 13 Javascript
详解jQuery停止动画——stop()方法的使用
Dec 14 Javascript
原生js实现轮播图的示例代码
Feb 20 Javascript
MUI 上拉刷新/下拉加载功能实例代码
Apr 13 Javascript
解决微信浏览器缓存站点入口文件(IIS部署Vue项目)
Jun 17 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
excellent!――ASCII Art(由目标图象生成ascii)
2007/02/20 PHP
对squid中refresh_pattern的一些理解和建议
2009/04/17 PHP
基于PHP对XML的操作详解
2013/06/07 PHP
如何使用php判断所处服务器操作系统的类型
2013/06/20 PHP
关于javascript中的parseInt使用技巧
2009/09/03 Javascript
基于Jquery的标签智能验证实现代码
2010/12/27 Javascript
js substr支持中文截取函数代码(中文是双字节)
2013/04/17 Javascript
jQuery实现鼠标滑过遮罩并高亮显示效果
2013/07/16 Javascript
javascript中slice(),splice(),split(),substring(),substr()使用方法
2015/03/13 Javascript
js小数运算出现多位小数如何解决
2015/10/08 Javascript
简单理解vue中track-by属性
2016/10/26 Javascript
基于vue.js的分页插件详解
2017/11/27 Javascript
解决Vue打包之后文件路径出错的问题
2018/03/06 Javascript
vue-cli 引入jQuery,Bootstrap,popper的方法
2018/09/03 jQuery
webpack+vue-cli项目中引入外部非模块格式js的方法
2018/09/28 Javascript
使用Vue实现移动端左滑删除效果附源码
2019/05/16 Javascript
JavaScript动态添加数据到表单并提交的几种方式
2019/06/26 Javascript
Vue源码分析之Vue实例初始化详解
2019/08/25 Javascript
解决微信小程序中的滚动穿透问题
2019/09/16 Javascript
vue 实现动态路由的方法
2020/07/06 Javascript
[01:50]2014DOTA2西雅图邀请赛 专访欢乐周宝龙
2014/07/08 DOTA
Python实现的建造者模式示例
2018/08/06 Python
Python3爬虫全国地址信息
2019/01/05 Python
Python包和模块的分发详细介绍
2020/06/19 Python
纯css3使用vw和vh实现自适应的方法
2018/02/09 HTML / CSS
HTML5新特性之语义化标签
2017/10/31 HTML / CSS
Myprotein瑞典官方网站:畅销欧洲英国运动营养品牌
2018/01/22 全球购物
加拿大时尚潮流大码女装购物网站:Addition Elle
2018/04/02 全球购物
接口可以包含哪些成员
2012/09/30 面试题
网络工程专业毕业生推荐信
2013/10/28 职场文书
学生会竞聘书范文
2014/03/31 职场文书
体现团队精神的口号
2014/06/06 职场文书
小学班主任个人总结
2015/03/03 职场文书
2015-2016年小学教导工作总结
2015/07/21 职场文书
MySQL性能压力基准测试工具sysbench的使用简介
2021/04/21 MySQL
一小时迅速入门Mybatis之bind与多数据源支持 Java API
2021/09/15 Javascript