原生JS 实现的input输入时表格过滤操作示例


Posted in Javascript onAugust 03, 2019

本文实例讲述了原生JS 实现的input输入时表格过滤操作。分享给大家供大家参考,具体如下:

需求:对input框进行键盘输入后根据输入的内容去匹配表格中指定的数据项,若存在相匹配的则只显示匹配的数据项;

细节处理:监听键盘输入后给一定的缓冲时间避免发生频繁的请求;

解决思路:给个定时器,当键盘开始输入时启动定时器,倘若在指定的时间内都不在进行输入操作,则执行匹配操作,否则取消操作,同时限定输入的字符串大于等于2位数字时再进行匹配操作,使过滤效果更精准一些。

<!--JS -->

var timer = null; //定义定时器
function filterTable(el){
  clearTimeout(timer);
  var oTable = document.getElementById("oTable");
  //获取需要匹配的元素集合
  var firstTdArr = oTable.getElementsByClassName("firstTd");
  if(el.value.length>1){ //限定匹配的字符至少为两位数
    var filterVal = el.value.toUpperCase();
    timer = setTimeout(function(){
      for(var i=0;i<firstTdArr.length;i++){
        //元素集合中存在匹配值时,显示匹配的记录,否则隐藏
        if (firstTdArr[i].innerHTML.toUpperCase().indexOf(filterVal) > -1) {
          firstTdArr[i].parentNode.style.display = "";
        }else{
          firstTdArr[i].parentNode.style.display = "none";
        }
      }
    },500);
  }else{
    //不满足匹配所需字符数量时,恢复匹配之前的模样
    for(var i=0;i<firstTdArr.length;i++){
      firstTdArr[i].parentNode.style.display = "";
    }
  }
}

<!-- HTML -->

<p><input type="text" οnkeyup="filterTable(this)"/></p>
<table id="oTable">
  <tr>
    <th>匹配数据</th>
    <th>数据项一</th>
    <th>数据项二</th>
    <th>数据项三</th>
  </tr>
  <tr>
    <td class="firstTd">JS前端数据多条件筛选</td>
    <td>11过滤table数据</td>
    <td>111过滤table数据</td>
    <td>1111过滤table数据</td>
  </tr>
  <tr>
    <td class="firstTd">程序员不会英语怎么行?</td>
    <td>22过滤table数据</td>
    <td>222过滤table数据</td>
    <td>2222过滤table数据</td>
  </tr>
  <tr>
    <td class="firstTd">前端代码编译后添加过滤</td>
    <td>33过滤table数据</td>
    <td>333过滤table数据</td>
    <td>3333过滤table数据</td>
  </tr>
  <tr>
    <td class="firstTd">大数据学习</td>
    <td>44过滤table数据</td>
    <td>444过滤table数据</td>
    <td>4444过滤table数据</td>
  </tr>
  <tr>
    <td class="firstTd">JS过滤HTML标签</td>
    <td>55过滤table数据</td>
    <td>555过滤table数据</td>
    <td>5555过滤table数据</td>
  </tr>
  <tr>
    <td class="firstTd">大数据你了解多少</td>
    <td>66过滤table数据</td>
    <td>666过滤table数据</td>
    <td>6666过滤table数据</td>
  </tr>
</table>

<!-- CSS3 -->

table{border: 1px solid #ccc;width: 900px;}
table tr:nth-child(odd){background:#F4F4F4;}
table tr:nth-child(even){background:#fff;}

<!-- 效果 -->

原生JS 实现的input输入时表格过滤操作示例

感兴趣的朋友可以使用在线HTML/CSS/JavaScript前端代码调试运行工具:http://tools.3water.com/code/WebCodeRun测试上述代码运行效果。

更多关于JavaScript相关内容可查看本站专题:《JavaScript表格(table)操作技巧大全》、《JavaScript操作DOM技巧总结》、《JavaScript数组操作技巧总结》、《JavaScript遍历算法与技巧总结》、《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript查找算法技巧总结》及《JavaScript错误与调试技巧总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
window.showModalDialog使用手册
Jan 11 Javascript
javascript深入理解js闭包
Jul 03 Javascript
使用js获取地址栏中传递的值
Jul 02 Javascript
jQuery中after()方法用法实例
Dec 25 Javascript
JavaScript代码因逗号不规范导致IE不兼容的问题
Feb 25 Javascript
浅谈js中字符和数组一些基本算法题
Aug 15 Javascript
JavaScript中的toString()和toLocaleString()方法的区别
Feb 15 Javascript
js 函数式编程学习笔记
Mar 25 Javascript
jQuery使用JSONP实现跨域获取数据的三种方法详解
May 04 jQuery
Typescript的三种运行方式(小结)
Sep 18 Javascript
vue element upload组件 file-list的动态绑定实现
Oct 11 Javascript
移动端JS实现拖拽两种方法解析
Oct 12 Javascript
vue.js基于v-for实现批量渲染 Json数组对象列表数据示例
Aug 03 #Javascript
vue.js实现数据库的JSON数据输出渲染到html页面功能示例
Aug 03 #Javascript
jQuery实现的记住帐号密码功能完整示例
Aug 03 #jQuery
小程序中英文混合排序问题解决
Aug 02 #Javascript
详解JWT token心得与使用实例
Aug 02 #Javascript
详解使用JWT实现单点登录(完全跨域方案)
Aug 02 #Javascript
基于mpvue的简单弹窗组件mptoast使用详解
Aug 02 #Javascript
You might like
PHP提取中文首字母
2008/04/09 PHP
利用curl 多线程 模拟 并发的详解
2013/06/14 PHP
删除html标签得到纯文本可处理嵌套的标签
2014/04/28 PHP
phpnow php探针环境检测代码
2014/11/04 PHP
PHP设计模式(三)建造者模式Builder实例详解【创建型】
2020/05/02 PHP
javascript cookie解码函数(兼容ff)
2008/03/17 Javascript
点击下载链接 弹出页面实现代码
2009/10/01 Javascript
js中判断控件是否存在
2010/08/25 Javascript
js加强的经典分页实例
2013/03/15 Javascript
js jquery获取随机生成id的服务器控件的三种方法
2013/07/11 Javascript
JS小游戏之仙剑翻牌源码详解
2014/09/25 Javascript
基于JS代码实现图片在页面中旋转效果
2016/06/16 Javascript
D3.js实现柱状图的方法详解
2016/09/21 Javascript
JavaScript实现鼠标点击导航栏变色特效
2017/02/08 Javascript
jquery.masonry瀑布流效果
2017/05/25 jQuery
vue2+el-menu实现路由跳转及当前项的设置方法实例
2017/11/07 Javascript
Vue开发实现吸顶效果的示例代码
2018/08/21 Javascript
纯javascript前端实现base64图片下载(兼容IE10+)
2018/09/14 Javascript
微信小程序实现简单跑马灯效果
2020/05/26 Javascript
[01:59]游戏“zheng”当时试玩会
2019/08/21 DOTA
使用tqdm显示Python代码执行进度功能
2019/12/08 Python
Python自动巡检H3C交换机实现过程解析
2020/08/14 Python
HTML5 Web缓存和运用程序缓存(cookie,session)
2018/01/11 HTML / CSS
Draper James官网:知名演员瑞茜·威瑟斯彭所创品牌
2017/10/25 全球购物
激光脱毛、蓝光和护肤:Tria Beauty
2019/03/28 全球购物
最新的小工具和卓越的产品设计:Oh That Tech!
2019/08/07 全球购物
香奈儿美国官网:CHANEL美国
2020/05/20 全球购物
可以在一个PHP文件里面include另外一个PHP文件两次吗
2015/05/22 面试题
shell程序中如何注释
2012/01/28 面试题
遗体告别仪式主持词
2014/03/20 职场文书
《大自然的语言》教学反思
2014/04/08 职场文书
商场父亲节活动方案
2014/08/27 职场文书
苏州园林导游词
2015/02/03 职场文书
社会实践活动报告
2015/02/05 职场文书
2015秋季新学期开学寄语
2015/05/28 职场文书
利用python Pandas实现批量拆分Excel与合并Excel
2021/05/23 Python