原生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 相关文章推荐
js中关于一个分号的崩溃示例
Nov 11 Javascript
给html超链接设置事件不使用href来完成跳
Apr 20 Javascript
JavaScript 七大技巧(一)
Dec 13 Javascript
jQuery仿京东商城楼梯式导航定位菜单
Jul 25 Javascript
Vue表单实例代码
Sep 05 Javascript
JavaScript ES6中CLASS的使用详解
Nov 22 Javascript
vue.js系列中的vue-fontawesome使用
Feb 10 Javascript
用ES6写全屏滚动插件的示例代码
May 02 Javascript
详解axios中封装使用、拦截特定请求、判断所有请求加载完毕)
Apr 09 Javascript
JS简单表单验证功能完整示例
Jan 26 Javascript
nuxt 页面路由配置,主页轮播组件开发操作
Nov 05 Javascript
vue 自定义的组件绑定点击事件
Apr 21 Vue.js
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
DC这些乐高系列动画电影你看过几部?
2020/04/09 欧美动漫
地摊中国 - 珍藏老照片
2020/08/18 杂记
php数组函数序列之in_array() - 查找数组中是否存在指定值
2011/11/07 PHP
php 伪静态之IIS篇
2014/06/02 PHP
PHP简单预防sql注入的方法
2016/09/27 PHP
wordpress自定义标签云与随机获取标签的方法详解
2019/03/22 PHP
javascript 支持链式调用的异步调用框架Async.Operation
2009/08/04 Javascript
jQuery 性能优化手册 推荐
2010/02/23 Javascript
js 异步处理进度条
2010/04/01 Javascript
一个页面元素appendchild追加到另一个页面元素的问题
2013/01/27 Javascript
jQuery蓝色风格滑动导航栏代码分享
2015/08/19 Javascript
JS实现表单验证功能(验证手机号是否存在,验证码倒计时)
2016/10/11 Javascript
原生js实现中奖信息无间隙滚动效果
2017/01/18 Javascript
node.js+jQuery实现用户登录注册AJAX交互
2017/04/28 jQuery
微信小程序使用checkbox显示多项选择框功能【附源码下载】
2017/12/11 Javascript
jQuery实现高级检索功能
2019/05/28 jQuery
Angular value与ngValue区别详解
2019/11/27 Javascript
Vue之封装公用变量以及实现方式
2020/07/31 Javascript
JavaScript实现拖拽和缩放效果
2020/08/24 Javascript
[04:02]DOTA2上海特锦赛小组赛第二日recap精彩回顾
2016/02/28 DOTA
详解Python中heapq模块的用法
2016/06/28 Python
Python编程生成随机用户名及密码的方法示例
2017/05/05 Python
使用 Supervisor 监控 Python3 进程方式
2019/12/05 Python
Django微信小程序后台开发教程的实现
2020/06/03 Python
python中翻译功能translate模块实现方法
2020/12/17 Python
美国顶级防滑鞋:Shoes For Crews
2017/03/27 全球购物
台湾生鲜宅配:大口市集
2017/10/14 全球购物
Moss Bros官网:英国排名第一的西装店
2020/02/26 全球购物
办公室打字员岗位职责
2014/04/16 职场文书
4S店收银员岗位职责
2015/04/07 职场文书
2015中秋节晚会主持词
2015/07/01 职场文书
生日寿星公答谢词
2015/09/29 职场文书
青年文明号创建口号大全
2015/12/25 职场文书
成人成长感言如何写?
2019/08/16 职场文书
漫画「你在春天醒来」第10卷封面公开
2022/03/21 日漫
Python selenium绕过webdriver监测执行javascript
2022/04/12 Python