js实现模糊匹配功能


Posted in Javascript onFebruary 15, 2017

功能描述:

在搜索框中输入某一个字段,可以查询到相关的内容

功能实现:

1.  先声明变量用于保存输入框以及表格里面的内容
2.  循环遍历
遍历表格每一行,查找匹配项
3.  判断
如果输入框里面的内容跟表格中某个td的内容相似,则表格中的某行就显示,否则隐藏

功能实现:

<html> 
<head> 
  <style> 
    #myInput { 
      width: 100%; 
      font-size: 16px; 
      padding: 12px 20px 12px 40px; 
      border: 1px solid #ddd; 
      margin-bottom: 12px; 
    } 
    #myTable { 
      border-collapse: collapse; 
      width: 100%; 
      border: 1px solid #ddd; 
      font-size: 18px; 
    } 
    #myTable th, #myTable td { 
      text-align: left; 
      padding: 12px; 
    } 
    #myTable tr { 
      border-bottom: 1px solid #ddd; 
    } 
    #myTable tr.header, #myTable tr:hover { 
      background-color: #f1f1f1; 
    } 
  </style> 
</head> 
<body> 
<input type="text" id="myInput" onkeyup="myFunction()" placeholder="搜索..."> 
<table id="myTable"> 
  <tr class="header"> 
    <th style="width:60%;">项目名称</th> 
    <th style="width:40%;">时间</th> 
  </tr> 
  <tr> 
    <td>redPackets</td> 
    <td>2017.2.6</td> 
  </tr> 
  <tr> 
    <td>traffic</td> 
    <td>2016.12.25</td> 
  </tr> 
  <tr> 
    <td>creditCard</td> 
    <td>2017.1.18</td> 
  </tr> 
  <tr> 
    <td>returnMoney</td> 
    <td>2016.11.25</td> 
  </tr> 
</table> 
<script> 
  function myFunction() { 
    // 声明变量 
    var input, filter, table, tr, td, i; 
    input = document.getElementById("myInput"); 
    filter = input.value.toUpperCase(); 
    table = document.getElementById("myTable"); 
    tr = table.getElementsByTagName("tr"); 
    // 循环表格每一行,查找匹配项 
    for (i = 0; i < tr.length; i++) { 
      td = tr[i].getElementsByTagName("td")[0]; 
      if (td) { 
        if (td.innerHTML.toUpperCase().indexOf(filter) > -1) { 
          tr[i].style.display = ""; 
        } else { 
          tr[i].style.display = "none"; 
        } 
      } 
    } 
  } 
</script> 
</body> 
</html>

扩展:模拟通讯录搜索提示

<html> 
<head> 
  <style> 
    #myInput { 
      width: 100%; 
      font-size: 16px; /* 加大字体 */ 
      padding: 12px 20px 12px 40px; 
      border: 1px solid #ddd; 
      margin-bottom: 12px; 
    } 
 
    #myUL { 
      list-style-type: none; 
      padding: 0; 
      margin: 0; 
    } 
 
    #myUL li a { 
      border: 1px solid #ddd; /* 链接添加边框 */ 
      margin-top: -1px; 
      background-color: #f6f6f6; 
      padding: 12px; 
      text-decoration: none; 
      font-size: 18px; 
      color: black; 
      display: block; 
    } 
 
    #myUL li a.header { 
      background-color: #5587A2; 
      cursor: default; 
    } 
 
    #myUL li a:hover:not(.header) { 
      background-color: #eee; 
    } 
  </style> 
</head> 
<body> 
  <input type="text" id="myInput" onkeyup="myFunction()" placeholder="搜索..."> 
 
  <ul id="myUL"> 
    <li><a href="#" class="header">A</a></li> 
    <li><a href="#">Angel</a></li> 
    <li><a href="#">Adobe</a></li> 
    <li><a href="#">Anne</a></li> 
 
    <li><a href="#" class="header">B</a></li> 
    <li><a href="#">Betty</a></li> 
    <li><a href="#">Bella</a></li> 
    <li><a href="#">Brown</a></li> 
 
    <li><a href="#" class="header">C</a></li> 
    <li><a href="#">Calvin</a></li> 
    <li><a href="#">Chris</a></li> 
    <li><a href="#">Claire</a></li> 
 
    <li><a href="#" class="header">D</a></li> 
    <li><a href="#">David</a></li> 
    <li><a href="#">Daniel</a></li> 
    <li><a href="#">Dora</a></li> 
 
    <li><a href="#" class="header">E</a></li> 
    <li><a href="#">Emily</a></li> 
    <li><a href="#">Elena</a></li> 
    <li><a href="#">Eufemia</a></li> 
  </ul> 
<script> 
  function myFunction() { 
    // 声明变量 
    var input, filter, ul, li, a, i; 
    input = document.getElementById('myInput'); 
    filter = input.value.toUpperCase(); 
    ul = document.getElementById("myUL"); 
    li = ul.getElementsByTagName('li'); 
 
    // 循环所有列表,查找匹配项 
    for (i = 0; i < li.length; i++) { 
      a = li[i].getElementsByTagName("a")[0]; 
      if (a.innerHTML.toUpperCase().indexOf(filter) > -1) { 
        li[i].style.display = ""; 
      } else { 
        li[i].style.display = "none"; 
      } 
    } 
  } 
</script> 
</body> 
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery 插件仿百度搜索框智能提示(带Value值)
Jan 22 Javascript
JavaScript起点(严格模式深度了解)
Jan 28 Javascript
node.js使用require()函数加载模块
Nov 26 Javascript
jQuery实现浮动层随浏览器滚动条滚动的方法
Sep 22 Javascript
基于javascript实现泡泡大冒险网页版小游戏
Mar 23 Javascript
超链接怎么正确调用javascript函数
May 23 Javascript
JavaScript核心语法总结(推荐)
Jun 02 Javascript
jQuery获取同级元素的简单代码
Jul 09 Javascript
滚动条的监听与内容随着滚动条动态加载的实现
Feb 08 Javascript
jQuery实现验证表单密码一致性及正则表达式验证邮箱、手机号的方法
Dec 05 jQuery
koa+mongoose实现简单增删改查接口的示例代码
May 13 Javascript
vue柱状进度条图像的完美实现方案
Aug 26 Javascript
js 性能优化之算法和流程控制
Feb 15 #Javascript
微信小程序 常用工具类详解及实例
Feb 15 #Javascript
微信小程序 基础知识css样式media标签
Feb 15 #Javascript
js 性能优化之快速响应的用户界面
Feb 15 #Javascript
微信小程序  http请求封装详解及实例代码
Feb 15 #Javascript
DOM事件探秘篇
Feb 15 #Javascript
详解Angularjs 如何自定义Img的ng-load 事件
Feb 15 #Javascript
You might like
php中的观察者模式
2010/03/24 PHP
PHP empty函数报错解决办法
2014/03/06 PHP
PHP PDOStatement对象bindpram()、bindvalue()和bindcolumn之间的区别
2014/11/20 PHP
百度工程师讲PHP函数的实现原理及性能分析(一)
2015/05/13 PHP
php解决和避免form表单重复提交的几种方法
2016/08/31 PHP
php实现微信支付之现金红包
2018/05/30 PHP
超简单的jquery的AJAX用法
2010/05/10 Javascript
javascript 传统事件模型构造的事件监听器实现代码
2010/05/31 Javascript
js 操作select和option常用代码整理
2012/12/13 Javascript
JS隐藏参数post传值实例
2013/04/18 Javascript
jQuery+ajax的资源回收处理机制分析
2017/01/07 Javascript
js轮播图无缝滚动效果
2017/06/17 Javascript
jQuery 中msgTips 顶部弹窗效果实现代码
2017/08/14 jQuery
vue的事件绑定与方法详解
2017/08/16 Javascript
jQuery操作cookie的示例代码
2019/06/05 jQuery
[02:03]DOTA2亚洲邀请赛 HGT战队出场宣传片
2015/02/07 DOTA
[48:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第二场 1月29日
2021/03/11 DOTA
Python简单实现Base64编码和解码的方法
2017/04/29 Python
Python中音频处理库pydub的使用教程
2017/06/07 Python
python中设置超时跳过,超时退出的方式
2019/12/13 Python
解决tensorboard多个events文件显示紊乱的问题
2020/02/15 Python
香港网上花店:FlowerAdvisor香港
2019/05/30 全球购物
艺术设计专业个人求职信
2013/09/21 职场文书
创建学习型党组织实施方案
2014/03/29 职场文书
协议书怎么写
2014/04/21 职场文书
如何写早恋检讨书
2014/09/10 职场文书
离婚财产处理协议书
2014/09/30 职场文书
大学生毕业个人总结
2015/02/15 职场文书
2015关于重阳节的演讲稿
2015/03/20 职场文书
2015年食品安全宣传周活动总结
2015/07/09 职场文书
2016教师六五普法学习心得体会
2016/01/21 职场文书
《钓鱼的启示》教学反思
2016/02/18 职场文书
《丑小鸭》教学反思
2016/02/19 职场文书
车位出租协议书范本
2016/03/19 职场文书
原生Js 实现的简单无缝滚动轮播图的示例代码
2021/05/10 Javascript
python 如何在list中找Topk的数值和索引
2021/05/20 Python