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中this做事件参数相关问题解答
Mar 17 Javascript
Jquery显示、隐藏元素以及添加删除样式
Aug 09 Javascript
不同Jquery版本引发的问题解决
Oct 14 Javascript
jquery根据name属性查找的小例子
Nov 21 Javascript
js限制文本框只能输入数字方法小结
Jun 16 Javascript
JavaScript模拟数组合并concat
Mar 06 Javascript
详解ElementUI之表单验证、数据绑定、路由跳转
Jun 21 Javascript
JavaScript中使用import 和require打包后实现原理分析
Mar 07 Javascript
JavaScript寄生组合式继承原理与用法分析
Jan 11 Javascript
Vue 组件参数校验与非props特性的方法
Feb 12 Javascript
electron 安装,调试,打包的具体使用
Nov 06 Javascript
redux处理异步action解决方案
Mar 22 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提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
2011/02/08 PHP
[原创]php逐行读取txt文件写入数组的方法
2015/07/02 PHP
编写PHP脚本清除WordPress头部冗余代码的方法讲解
2016/03/01 PHP
PHP Smarty模版简单使用方法
2016/03/30 PHP
phpMyAdmin无法登陆的解决方法
2017/04/27 PHP
Javascript继承(上)——对象构建介绍
2012/11/08 Javascript
jquery调取json数据实现省市级联的方法
2015/01/29 Javascript
原生Js实现简易烟花爆炸效果的方法
2015/03/20 Javascript
Vue.js第一天学习笔记(数据的双向绑定、常用指令)
2016/12/01 Javascript
jQuery实现简易的输入框字数计数功能示例
2017/01/16 Javascript
详解ECMAScript6入门--Class对象
2017/04/27 Javascript
解决ztree搜索中多级菜单展示不全问题
2017/07/05 Javascript
深入解析vue 源码目录及构建过程分析
2019/04/24 Javascript
使用jQuery实现购物车
2020/10/29 jQuery
Pyhthon中使用compileall模块编译源文件为pyc文件
2015/04/28 Python
深入理解python对json的操作总结
2017/01/05 Python
浅谈django model的get和filter方法的区别(必看篇)
2017/05/23 Python
深入探究Django中的Session与Cookie
2017/07/30 Python
python unittest实现api自动化测试
2018/04/04 Python
Anaconda入门使用总结
2018/04/05 Python
利用python画出折线图
2018/07/26 Python
python 图片去噪的方法示例
2019/07/09 Python
Python使用type动态创建类操作示例
2020/02/29 Python
利用python控制Autocad:pyautocad方式
2020/06/01 Python
迪卡侬波兰体育用品商店:Decathlon波兰
2020/03/31 全球购物
打造完美自荐信
2014/01/24 职场文书
三月学雷锋月活动总结
2014/04/28 职场文书
篮球比赛拉拉队口号
2014/06/10 职场文书
党员批评与自我批评范文
2014/09/23 职场文书
护理见习报告范文
2014/11/03 职场文书
2015年度培训工作总结范文
2015/04/02 职场文书
财务总监岗位职责范本
2015/04/03 职场文书
《伯牙绝弦》教学反思
2016/02/16 职场文书
MySql学习笔记之事务隔离级别详解
2021/05/12 MySQL
win10以太网连接不上怎么办?Win10连接以太网详细教程
2022/04/08 数码科技
Win10系统搭建ftp文件服务器详细教程
2022/08/05 Servers