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 基础知识 被自己遗忘的
Oct 15 Javascript
jQuery 学习入门篇附实例代码
Mar 16 Javascript
js+css使DIV始终居于屏幕中间 左下 左上 右上 右下的代码集合
Mar 10 Javascript
jquery乱码与contentType属性设置问题解决方案
Jan 07 Javascript
href下载文件根据id取url并下载
May 28 Javascript
BootStrap 超链接变按钮的实现方法
Sep 25 Javascript
AngularJS实现与后台服务器进行交互的示例讲解
Aug 13 Javascript
解决vue打包css文件中背景图片的路径问题
Sep 03 Javascript
jQuery实现的鼠标拖动浮层功能示例【拖动div等任何标签】
Dec 29 jQuery
Node.js原生api搭建web服务器的方法步骤
Feb 15 Javascript
深入浅析golang zap 日志库使用(含文件切割、分级别存储和全局使用等)
Feb 19 Javascript
微信小程序绘制半圆(弧形)进度条
Nov 18 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
CI(CodeIgniter)框架中的增删改查操作
2014/06/10 PHP
laravel安装和配置教程
2014/10/29 PHP
PHP字符串word末字符实现大小写互换的方法
2014/11/10 PHP
WordPress中的shortcode短代码功能使用详解
2016/05/17 PHP
24条货真价实的PHP代码优化技巧
2016/07/28 PHP
微信小程序 消息推送php服务器验证实例详解
2017/03/30 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
js Date自定义函数 延迟脚本执行
2010/03/10 Javascript
javaScript call 函数的用法说明
2010/04/09 Javascript
Javascript Request获取请求参数如何实现
2012/11/28 Javascript
javascript 星级评分效果(手写)
2012/12/24 Javascript
Bootstrap精简教程中秋大放送
2016/09/15 Javascript
javaScript中定义类或对象的五种方式总结
2016/12/04 Javascript
5分钟打造简易高效的webpack常用配置
2017/07/04 Javascript
封装运动框架实战左右与上下滑动的焦点轮播图(实例)
2017/10/17 Javascript
详解react、redux、react-redux之间的关系
2018/04/11 Javascript
boostrap模态框二次弹出清空原有内容的方法
2018/08/10 Javascript
小试小程序云开发(小结)
2019/06/06 Javascript
react 不用插件实现数字滚动的效果示例
2020/04/14 Javascript
Vue基于localStorage存储信息代码实例
2020/11/16 Javascript
Python中还原JavaScript的escape函数编码后字符串的方法
2014/08/22 Python
python使用xlrd实现检索excel中某列含有指定字符串记录的方法
2015/05/09 Python
Python中函数参数设置及使用的学习笔记
2016/05/03 Python
Jupyter notebook远程访问服务器的方法
2018/05/24 Python
对python 多个分隔符split 的实例详解
2018/12/20 Python
python实现图片压缩代码实例
2019/08/12 Python
Python基于pygame实现单机版五子棋对战
2019/12/26 Python
Python random库使用方法及异常处理方案
2020/03/02 Python
python实现图像高斯金字塔的示例代码
2020/12/11 Python
CheapTickets泰国:廉价航班,查看促销价格并预订机票
2019/12/28 全球购物
教师年终个人自我评价
2013/10/04 职场文书
运动会广播稿100字
2014/01/11 职场文书
预备党员公开承诺书
2014/05/28 职场文书
初中英语教师个人工作总结
2015/02/09 职场文书
请病假条范文
2015/08/17 职场文书
排查MySQL生产环境索引没有效果
2022/04/11 MySQL