原生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获取用户本地图片路径并显示的代码
Feb 16 Javascript
jQuery的deferred对象详解
Nov 12 Javascript
简介EasyUI datagrid editor combogrid搜索框的实现
Apr 01 Javascript
原生ajax处理json格式数据的实例代码
Dec 25 Javascript
详解vue+vueRouter+webpack的简单实例
Jun 17 Javascript
jquery点击回车键实现登录效果并默认焦点的方法
Mar 09 jQuery
详解用vue2.x版本+adminLTE开源框架搭建后台应用模版
Mar 15 Javascript
对Layer弹窗使用及返回数据接收的实例详解
Sep 26 Javascript
JS通用方法触发点击事件代码实例
Feb 17 Javascript
JavaScript实现多球运动效果
Sep 07 Javascript
JavaScript代码简化技巧实例解析
Sep 09 Javascript
如何利用React实现图片识别App
Feb 18 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的AES加密算法类
2015/03/12 PHP
学习php设计模式 php实现合成模式(composite)
2015/12/08 PHP
Thinkphp 框架扩展之类库扩展操作详解
2020/04/23 PHP
jquery animate 动画效果使用说明
2009/11/04 Javascript
jQuery EasyUI API 中文文档 - Spinner微调器使用
2011/10/21 Javascript
JavaScript中两个感叹号的作用说明
2011/12/28 Javascript
jQuery实现id模糊查询的小例子
2013/03/19 Javascript
JS删除数组元素的函数介绍
2013/03/27 Javascript
js之onload事件的一点使用心得
2013/08/14 Javascript
解决html按钮切换绑定不同函数后点击时执行多次函数问题
2014/05/14 Javascript
JavaScript学习笔记(三):JavaScript也有入口Main函数
2015/09/12 Javascript
js友好的时间返回函数
2016/08/24 Javascript
简单易懂的天气插件(代码分享)
2017/02/04 Javascript
使用jquery判断一个元素是否含有一个指定的类(class)实例
2017/02/12 Javascript
Angular1.x自定义指令实例详解
2017/03/01 Javascript
Vue中Table组件Select的勾选和取消勾选事件详解
2019/03/19 Javascript
微信小程序 组件的外部样式externalClasses使用详解
2019/09/06 Javascript
使用uni-app开发微信小程序的实现
2019/12/13 Javascript
小程序新版订阅消息模板消息
2019/12/31 Javascript
vue等两个接口都返回结果再执行下一步的实例
2020/09/08 Javascript
Python列表计数及插入实例
2014/12/17 Python
python通过正则查找微博@(at)用户的方法
2015/03/13 Python
python自动zip压缩目录的方法
2015/06/28 Python
Python的socket模块源码中的一些实现要点分析
2016/06/06 Python
基于python实现学生管理系统
2018/10/17 Python
浅析python的优势和不足之处
2018/11/20 Python
python xpath获取页面注释的方法
2019/01/14 Python
python3 常见解密加密算法实例分析【base64、MD5等】
2019/12/19 Python
win10下python3.8的PIL库安装过程
2020/06/08 Python
详解移动端h5页面根据屏幕适配的四种方案
2020/04/15 HTML / CSS
WEB控件及HTML服务端控件能否调用客户端方法?如果能,请解释如何调用?
2015/08/25 面试题
大学毕业感言
2014/01/10 职场文书
医院反腐倡廉演讲稿
2014/09/16 职场文书
2014社区健康教育工作总结
2014/12/16 职场文书
青春雷锋观后感
2015/06/10 职场文书
pytorch 两个GPU同时训练的解决方案
2021/06/01 Python