JavaScript实现的搜索及高亮显示功能示例


Posted in Javascript onAugust 14, 2017

本文实例讲述了JavaScript实现的搜索及高亮显示功能。分享给大家供大家参考,具体如下:

情景: 用来筛选列表中的数据, 由于单条数据很简短, 没有用php+mysql去实现筛选功能, 只用javascript进行筛选, 匹配的高亮, 或者将不匹配的隐藏掉

效果图:

JavaScript实现的搜索及高亮显示功能示例

html:

<div class="contracts-header">名称: <input type="text" value="" id="search_contract_name"></div>
<div class="contracts-header">代码: <input type="text" value="" id="search_contract_code" placeholder="不区分大小写"></div>
<div class="contracts-header"><button onclick="search()">查找</button></div>
<div id="contracts-list">
  <ul>
  <li><input type="checkbox" name="contract[]" value="code|name" /><span>name(code)</span></li>
  <li><input type="checkbox" name="contract[]" value="code|name" /><span>name(code)</span></li>
  </ul>
</div>

javascript:

function search()
{
  var search_contract_name = $("#search_contract_name").val();
  var search_contract_code = $("#search_contract_code").val();
  if (search_contract_name && search_contract_code) { //两个输入框都有值
    search_contract_code = search_contract_code.toLowerCase(); //不区分大小写, 全部转换为小写, 下同
    $("input[name='contract[]']").each(
        function () {
          var code_name = this.value;
          var search_code = code_name.toLowerCase().indexOf(search_contract_code); 
          var search_name = code_name.toLowerCase().indexOf(search_contract_name);
          if (search_code >=0 && search_name >=0 ) {
            // this.nextSibling.style.backgroundColor = "#FFDEAD"; //高亮匹配到的
            this.parentNode.style.display = 'block';
          } else {
            // this.nextSibling.style.backgroundColor = "";
            this.parentNode.style.display = 'none'; //隐藏不匹配的
          }
        }
    );
  } else if(search_contract_name || search_contract_code) { //只有一个输入框有值
    search_contract_name = search_contract_name.length ? search_contract_name : 'xxx'; //默认为xxx是因为不可能存在xxx
    search_contract_code = search_contract_code.length ? search_contract_code.toLowerCase() : 'xxx';
    $("input[name='contract[]']").each(
      function () {
        var code_name = this.value;
        var search_code = code_name.toLowerCase().indexOf(search_contract_code);
        var search_name = code_name.toLowerCase().indexOf(search_contract_name);
        if (search_code >=0 || search_name >=0 ) {
          // this.nextSibling.style.backgroundColor = "#FFDEAD";
          this.parentNode.style.display = 'block';
        } else {
          // this.nextSibling.style.backgroundColor = "";
          this.parentNode.style.display = 'none';
        }
      }
    );
  }
}

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
javascript学习笔记(九)javascript中的原型(prototype)及原型链的继承方式
Apr 12 Javascript
js限制textarea每行输入字符串长度的代码
Oct 31 Javascript
多种方法实现JS动态添加事件
Nov 01 Javascript
jquery简单实现滚动条下拉DIV固定在头部不动
Nov 25 Javascript
JavaScript页面模板库handlebars的简单用法
Mar 02 Javascript
一个字符串中出现次数最多的字符 统计这个次数【实现代码】
Apr 29 Javascript
Javascript字符串拼接小技巧(推荐)
Jun 02 Javascript
BootStrap 实现各种样式的进度条效果
Dec 07 Javascript
网页爬虫之cookie自动获取及过期自动更新的实现方法
Mar 06 Javascript
vue中过滤器filter的讲解
Jan 21 Javascript
解决layui页面按钮点击无反应,也不报错的问题
Sep 29 Javascript
js面向对象方式实现拖拽效果
Mar 03 Javascript
带你了解session和cookie作用原理区别和用法
Aug 14 #Javascript
react.js使用webpack搭配环境的入门教程
Aug 14 #Javascript
JS原生数据双向绑定实现代码
Aug 14 #Javascript
jQuery 中msgTips 顶部弹窗效果实现代码
Aug 14 #jQuery
关于在mongoose中填充外键的方法详解
Aug 14 #Javascript
JavaScript变量类型以及变量作用域详解
Aug 14 #Javascript
jQuery:unbind方法的使用详解
Aug 14 #jQuery
You might like
PHP中static关键字以及与self关键字的区别
2015/07/01 PHP
PHP 用session与gd库实现简单验证码生成与验证的类方法
2016/11/15 PHP
简述php环境搭建与配置
2016/12/05 PHP
Laravel中如何增加自定义全局函数详解
2017/05/09 PHP
Laravel框架中Blade模板的用法示例
2017/08/30 PHP
[Web]防止用户复制页面内容和另存页面的方法
2009/02/06 Javascript
ajax 文件上传应用简单实现
2009/03/03 Javascript
javascript在事件监听方面的兼容性小结
2010/04/07 Javascript
高性能WEB开发 flush让页面分块,逐步呈现 flush让页面分块,逐步呈现
2010/06/19 Javascript
jQuery实现的多选框多级联动插件
2014/05/02 Javascript
AngularJS模块学习之Anchor Scroll
2016/01/19 Javascript
全面解析DOM操作和jQuery实现选项移动操作代码分享
2016/06/07 Javascript
jQuery实现的placeholder效果完整实例
2016/08/02 Javascript
Web性能优化系列 10个提升JavaScript性能的技巧
2016/09/27 Javascript
微信小程序  modal详解及实例代码
2016/11/09 Javascript
禁用backspace网页回退功能的实现代码
2016/11/15 Javascript
Javascript中引用类型传递的知识点小结
2017/03/06 Javascript
ionic使用angularjs表单验证(模板验证)
2018/12/12 Javascript
浅谈vue.use()方法从源码到使用
2019/05/12 Javascript
vue自定义指令和动态路由实现权限控制
2020/08/28 Javascript
Vue全局使用less样式,组件使用全局样式文件中定义的变量操作
2020/10/21 Javascript
聊聊vue 中的v-on参数问题
2021/01/29 Vue.js
[01:59]DOTA2首部纪录片《Free to play》预告片
2014/03/12 DOTA
[34:56]Ti4冒泡赛LGD vs Liquid 1
2014/07/14 DOTA
[30:00]完美世界DOTA2联赛PWL S2 Rebirth vs LBZS 第二场 11.28
2020/12/01 DOTA
Python实现快速计算词频功能示例
2018/06/25 Python
python代码 FTP备份交换机配置脚本实例解析
2019/08/01 Python
python GUI库图形界面开发之PyQt5布局控件QGridLayout详细使用方法与实例
2020/03/06 Python
Python numpy矩阵处理运算工具用法汇总
2020/07/13 Python
Python filter过滤器原理及实例应用
2020/08/18 Python
Grow Gorgeous美国官网:只要八天,体验唤醒毛囊后新生的茂密秀发
2018/06/04 全球购物
德国滑雪和户外用品网上商店:XSPO
2019/10/30 全球购物
法律顾问服务方案
2014/05/15 职场文书
篮球社团活动总结
2014/06/27 职场文书
医务人员医德医风心得体会
2016/01/25 职场文书
高端收音机+蓝牙音箱,JBL TUNER FM带收音蓝牙音箱评测
2021/04/24 无线电