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 相关文章推荐
按钮接受回车事件的三种实现方法
Jun 06 Javascript
JS遍历Json字符串中键值对先转成JSON对象再遍历
Aug 15 Javascript
jQuery中slice()方法用法实例
Jan 07 Javascript
JavaScript中消除闭包的一般方法介绍
Mar 16 Javascript
jQuery实现网站添加高亮突出显示效果的方法
Jun 26 Javascript
原生js与jQuery实现简单的tab切换特效对比
Jul 30 Javascript
如何屏蔽防止别的网站嵌入框架代码
Aug 24 Javascript
深入浅析AngularJS和DataModel
Feb 16 Javascript
微信小程序中单位rpx和rem的使用
Dec 06 Javascript
Node.js 实现简单的接口服务器的实例代码
May 23 Javascript
JavaScript事件发布/订阅模式原理与用法分析
Aug 21 Javascript
微信小程序语音同步智能识别的实现案例代码解析
May 29 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/06/29 PHP
php设计模式 Bridge (桥接模式)
2011/06/26 PHP
PHP基于GD2函数库实现验证码功能示例
2019/01/27 PHP
Yii框架中用response保存cookie,用request读取cookie的原理解析
2019/09/04 PHP
Laravel 微信小程序后端实现用户登录的示例代码
2019/11/26 PHP
jQuery 1.0.4 - New Wave Javascript(js源文件)
2007/01/15 Javascript
24款非常有用的 jQuery 插件分享
2011/04/06 Javascript
JavaScript实现拼音排序的方法
2012/11/20 Javascript
JS实现闪动的title消息提醒效果
2014/06/20 Javascript
jQuery中:focus选择器用法实例
2014/12/30 Javascript
Javascript仿新浪游戏频道鼠标悬停显示子菜单效果
2015/08/21 Javascript
JavaScript引用类型和基本类型详解
2016/01/06 Javascript
JS完成画圆圈的小球
2017/03/07 Javascript
vue checkbox 全选 数据的绑定及获取和计算方法
2018/02/09 Javascript
vue axios 表单提交上传图片的实例
2018/03/16 Javascript
Vue 使用中的小技巧
2018/04/26 Javascript
详解js类型判断
2018/05/22 Javascript
Python实现的几个常用排序算法实例
2014/06/16 Python
简单实现python进度条脚本
2017/12/18 Python
python kmeans聚类简单介绍和实现代码
2018/02/23 Python
python flask框架实现传数据到js的方法分析
2019/06/11 Python
解决安装pyqt5之后无法打开spyder的问题
2019/12/13 Python
如何基于Python实现电子邮件的发送
2019/12/16 Python
用python解压分析jar包实例
2020/01/16 Python
Window系统下Python如何安装OpenCV库
2020/03/05 Python
html5教程调用绘图api画简单的圆形代码分享
2013/12/04 HTML / CSS
Html5百叶窗效果的示例代码
2017/12/11 HTML / CSS
.NET面试题:什么是反射
2016/09/30 面试题
北京大学自荐信范文
2014/01/28 职场文书
汽车机修工岗位职责
2014/03/06 职场文书
文秘应届生求职信
2014/07/05 职场文书
检察机关个人对照检查材料
2014/09/15 职场文书
校园广播稿精选
2014/10/01 职场文书
答辩状格式范本
2015/05/22 职场文书
为什么阅读对所有年龄段的孩子都很重要?
2019/07/08 职场文书
Python Pandas模块实现数据的统计分析的方法
2021/06/24 Python