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实现可高亮显示的二级CSS菜单效果
Sep 01 Javascript
JS实现六位字符密码输入器功能
Aug 19 Javascript
Angular-Ui-Router+ocLazyLoad动态加载脚本示例
Mar 02 Javascript
vue loadmore组件上拉加载更多功能示例代码
Jul 19 Javascript
webpack引入eslint配置详解
Jan 22 Javascript
详解webpack 热更新优化
Sep 13 Javascript
jquery实现动态创建form并提交的方法示例
May 27 jQuery
node express使用HTML模板的方法示例
Aug 22 Javascript
Emberjs 通过 axios 下载文件的方法
Sep 03 Javascript
解决vue做详情页跳转的时候使用created方法 数据不会更新问题
Jul 24 Javascript
Ajax获取node服务器数据的完整步骤
Sep 20 Javascript
Vue如何实现验证码输入交互
Dec 07 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删除文本文件中重复行的方法
2015/04/28 PHP
确保Laravel网站不会被嵌入到其他站点中的方法
2019/10/18 PHP
boxy基于jquery的弹出层对话框插件扩展应用 弹出层选择器
2010/11/21 Javascript
js实现鼠标拖动图片并兼容IE/FF火狐/谷歌等主流浏览器
2013/06/06 Javascript
jQuery找出网页上最高元素的方法
2015/03/20 Javascript
Jsonp 关键字详解及json和jsonp的区别,ajax和jsonp的区别
2015/12/30 Javascript
js+flash实现的5图变换效果广告代码(附演示与demo源码下载)
2016/04/01 Javascript
三种带箭头提示框总结实例
2016/06/14 Javascript
轻松掌握JavaScript中介者模式
2016/08/26 Javascript
vue实现可增删查改的成绩单
2016/10/27 Javascript
详解JS中的attribute属性
2017/04/25 Javascript
基于jQuery封装的分页组件
2017/06/26 jQuery
基于nodejs+express4.X实现文件下载的实例代码
2017/07/13 NodeJs
JavaScript实现的原生态兼容IE6可调可控滚动文字功能详解
2017/09/19 Javascript
微信小程序实现流程进度的图样式功能
2018/01/16 Javascript
详解vue-cli3使用
2018/08/14 Javascript
Javascript Web Worker使用过程解析
2020/03/16 Javascript
[02:50]2014DOTA2 TI预选赛预选赛 大神专访第一弹!
2014/05/21 DOTA
Python中删除文件的程序代码
2011/03/13 Python
关于python的bottle框架跨域请求报错问题的处理方法
2017/03/19 Python
Python针对给定列表中元素进行翻转操作的方法分析
2018/04/27 Python
Python爬虫实现爬取百度百科词条功能实例
2019/04/05 Python
使用css3 属性如何丰富图片样式(圆角 阴影 渐变)
2012/11/22 HTML / CSS
html5 div布局与table布局详解
2016/11/16 HTML / CSS
eVitamins日本:在线购买折扣维生素、补品和草药
2019/04/04 全球购物
电子商务专业学生的自我鉴定
2013/11/28 职场文书
《歌唱二小放牛郎》教学反思
2014/04/19 职场文书
高三学生评语大全
2014/04/25 职场文书
个人承诺书格式
2014/06/03 职场文书
护理专业自荐信范文
2015/03/06 职场文书
2015元旦感言
2015/12/09 职场文书
初三化学教学反思
2016/02/22 职场文书
2016年教代会开幕词
2016/03/04 职场文书
利用python调用摄像头的实例分析
2021/06/07 Python
python基础之类属性和实例属性
2021/10/24 Python
MySQL中JOIN连接的基本用法实例
2022/06/05 MySQL