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 相关文章推荐
理解Javascript_11_constructor实现原理
Oct 18 Javascript
jQuery侧边栏随窗口滚动实现方法
Mar 04 Javascript
cookie.js 加载顺序问题怎么才有效
Jul 31 Javascript
基于javascript实现tab切换特效
Mar 29 Javascript
Bootstrap CSS组件之下拉菜单(dropdown)
Dec 17 Javascript
node.js实现复制文本到剪切板的功能
Jan 23 Javascript
VS Code转换大小写、修改选中文字或代码颜色的方法
Dec 15 Javascript
JS计算输出100元钱买100只鸡问题的解决方法
Jan 04 Javascript
JavaScript实用代码小技巧
Aug 23 Javascript
RxJS的入门指引和初步应用
Jun 15 Javascript
浅入深出Vue之组件使用
Jul 11 Javascript
Vue2项目中对百度地图的封装使用详解
Jun 16 Vue.js
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数据库操作面向对象的优点
2006/10/09 PHP
php SQL防注入代码集合
2008/04/25 PHP
php curl_init函数用法
2014/01/31 PHP
PHP实现单例模式最安全的做法
2014/06/13 PHP
PHP安全上传图片的方法
2015/03/21 PHP
js tab效果的实现代码
2009/12/26 Javascript
javascript跟随滚动效果插件代码(javascript Follow Plugin)
2013/08/03 Javascript
让jQuery Mobile不显示讨厌loading界面的方法
2014/02/19 Javascript
JavaScript通过字符串调用函数的实现方法
2015/03/18 Javascript
jQuery实现指定内容滚动同时左侧或其它地方不滚动的方法
2015/08/08 Javascript
JS实现用户注册时获取短信验证码和倒计时功能
2016/10/27 Javascript
Dropzone.js实现文件拖拽上传功能(附源码下载)
2016/11/22 Javascript
ES6扩展运算符用法实例分析
2017/10/31 Javascript
详解如何在你的Vue项目配置vux
2018/06/04 Javascript
微信小程序实现团购或秒杀批量倒计时
2020/11/01 Javascript
从零开始搭建vue移动端项目到上线的步骤
2018/10/15 Javascript
详解Vue 动态组件与全局事件绑定总结
2018/11/11 Javascript
js中对象与对象创建方法的各种方法
2019/02/27 Javascript
[04:59]2018DOTA2亚洲邀请赛 4.7 Mineski夺冠时刻
2018/04/09 DOTA
python去掉字符串中重复字符的方法
2014/02/27 Python
python模拟enum枚举类型的方法小结
2015/04/30 Python
详解Python中for循环的使用方法
2015/05/14 Python
Python中用psycopg2模块操作PostgreSQL方法
2017/11/28 Python
python 查找文件名包含指定字符串的方法
2018/06/05 Python
Django中密码的加密、验密、解密操作
2019/12/19 Python
UI自动化定位常用实现方法代码示例
2020/10/27 Python
html5本地存储之localstorage 、本地数据库、sessionStorage简单使用示例
2014/05/08 HTML / CSS
SEPHORA新西兰官方网站:购买化妆品和护肤品
2016/12/02 全球购物
警校毕业生自我评价
2014/04/06 职场文书
市场营销工作计划书
2014/05/06 职场文书
电气工程及其自动化专业毕业生自荐信
2014/06/21 职场文书
舞蹈兴趣小组活动总结
2014/07/07 职场文书
2014年教师业务工作总结
2014/12/19 职场文书
大学生求职自荐信范文
2015/03/04 职场文书
小学作文之描写天气
2019/08/15 职场文书
CSS3 Tab动画实例之背景切换动态效果
2021/08/23 HTML / CSS