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 相关文章推荐
添加到收藏夹代码(兼容几乎所有的浏览器)
Jan 09 Javascript
jquery与js函数冲突的两种解决方法
Sep 09 Javascript
jquery 删除cookie失效的解决方法
Nov 12 Javascript
js中事件的处理与浏览器对象示例介绍
Nov 29 Javascript
DOM节点删除函数removeChild()用法实例
Jan 12 Javascript
jquery.form.js实现将form提交转为ajax方式提交的方法
Apr 07 Javascript
基于jQuery和CSS3制作数字时钟附源码下载(jquery篇)
Nov 24 Javascript
用JS动态改变表单form里的action值属性的两种方法
May 25 Javascript
jQuery EasyUI提交表单验证
Jul 19 Javascript
Javascript中call,apply,bind方法的详解与总结
Dec 12 Javascript
利用js定义一个导航条菜单
Mar 14 Javascript
jquery实现左右轮播切换效果
Jan 01 jQuery
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
一个基于PDO的数据库操作类
2011/03/24 PHP
第三章 php操作符与控制结构代码
2011/12/30 PHP
PHP实现通过文本文件统计页面访问量功能示例
2019/02/13 PHP
Aster vs KG BO3 第二场2.19
2021/03/10 DOTA
基于jQuery制作迷你背词汇工具
2010/07/27 Javascript
网站基于flash实现的Banner图切换效果代码
2014/10/14 Javascript
jQuery中[attribute=value]选择器用法实例
2014/12/31 Javascript
jquery实现页面关键词高亮显示的方法
2015/03/12 Javascript
JavaScript返回网页中锚点数目的方法
2015/04/03 Javascript
基于nodejs+express(4.x+)实现文件上传功能
2015/11/23 NodeJs
对象转换为原始值的实现方法
2016/06/06 Javascript
基于AngularJS实现iOS8自带的计算器
2016/09/12 Javascript
JavaScript用200行代码制作打飞机小游戏实例
2017/06/21 Javascript
jquery实现左右轮播图效果
2017/09/28 jQuery
vue-cli开发时,关于ajax跨域的解决方法(推荐)
2018/02/03 Javascript
详解自定义ajax支持跨域组件封装
2018/02/08 Javascript
微信小程序实现滑动切换自定义页码的方法分析
2018/12/29 Javascript
JavaScript解析及序列化JSON的方法实例分析
2019/01/04 Javascript
js实现图片粘贴到网页
2019/12/06 Javascript
jQuery实现的移动端图片缩放功能组件示例
2020/05/01 jQuery
[07:47]DOTA2国际邀请赛采访专栏:探访Valve总部
2013/08/08 DOTA
用python 制作图片转pdf工具
2015/01/30 Python
Python多线程编程(三):threading.Thread类的重要函数和方法
2015/04/05 Python
python基于itchat实现微信群消息同步机器人
2017/02/27 Python
Python 实现某个功能每隔一段时间被执行一次的功能方法
2018/10/14 Python
python 实现检验33品种数据是否是正态分布
2019/12/09 Python
Python3如何在Windows和Linux上打包
2020/02/25 Python
Python爬虫爬取新闻资讯案例详解
2020/07/14 Python
意大利值得信赖的在线超级药房:PillolaStore
2020/02/05 全球购物
阿迪达斯印尼官方网站:adidas印尼
2020/02/10 全球购物
你在项目中用到了xml技术的哪些方面?如何实现的?
2014/01/26 面试题
抄作业检讨书
2014/02/17 职场文书
保研推荐信
2014/05/09 职场文书
工作失职自我检讨书
2015/05/05 职场文书
走进毛泽东观后感
2015/06/04 职场文书
小学生大队委竞选稿
2015/11/20 职场文书