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 相关文章推荐
Dreamweaver jQuery智能提示插件,支持版本提示,支持1.6api
Jul 31 Javascript
jquery fancybox ie6不显示关闭按钮的解决办法
Dec 25 Javascript
jquery实现右键菜单插件
Mar 29 Javascript
jquery代码实现简单的随机图片瀑布流效果
Apr 20 Javascript
vue2笔记 — vue-router路由懒加载的实现
Mar 03 Javascript
微信小程序多张图片上传功能
Jun 07 Javascript
详解如何在vue中使用sass
Jun 21 Javascript
关于jquery layui弹出层的使用方法
Apr 21 jQuery
使用vue点击li,获取当前点击li父辈元素的属性值方法
Sep 12 Javascript
JavaScript 判断数据类型的4种方法
Sep 11 Javascript
Ajax实现局部刷新的方法实例
Mar 31 Javascript
javascript拖曳互换div的位置实现示例
Jun 28 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
Apache+php+mysql在windows下的安装与配置图解(最新版)
2008/11/30 PHP
PHPUnit PHP测试框架安装方法
2011/03/23 PHP
php strrpos()与strripos()函数
2013/08/31 PHP
php实现的替换敏感字符串类实例
2014/09/22 PHP
详解PHP中的 input属性(隐藏 只读 限制)
2017/08/14 PHP
Laravel 简单实现Ajax滚动加载示例
2019/10/22 PHP
PHP实现chrome表单请求数据转换为接口使用的json数据
2021/03/04 PHP
拖拉表格的JS函数
2008/11/20 Javascript
JavaScript 常用函数库详解
2009/10/21 Javascript
JQuery调用WebServices的方法和4个实例
2014/05/06 Javascript
jquery实现的缩略图预览滑块实例
2015/06/25 Javascript
Vue2.0实现1.0的搜索过滤器功能实例代码
2017/03/20 Javascript
浅谈如何使用webpack构建多页面应用
2018/05/30 Javascript
解决vue组件没显示,没起作用,没报错,但该显示的组件没显示问题
2020/09/02 Javascript
[03:42]2018完美盛典-《加冕》
2018/12/16 DOTA
python正则表达式抓取成语网站
2013/11/20 Python
简述Python中的进程、线程、协程
2016/03/18 Python
Python 专题二 条件语句和循环语句的基础知识
2017/03/19 Python
对django xadmin自定义菜单的实例详解
2019/01/03 Python
Python元组知识点总结
2019/02/18 Python
Python中print和return的作用及区别解析
2019/05/05 Python
简单了解python 生成器 列表推导式 生成器表达式
2019/08/22 Python
Python迷宫生成和迷宫破解算法实例
2019/12/24 Python
Python flask路由间传递变量实例详解
2020/06/03 Python
浅谈keras使用预训练模型vgg16分类,损失和准确度不变
2020/07/02 Python
Numpy数组的广播机制的实现
2020/11/03 Python
如何用border-image实现文字气泡边框的示例代码
2020/01/21 HTML / CSS
中国双语服务优势的在线购票及活动平台:247tickets
2018/10/26 全球购物
急诊科护士自我鉴定
2013/10/14 职场文书
工地资料员岗位职责
2013/12/31 职场文书
经理助理岗位职责
2014/03/05 职场文书
个人主要事迹材料
2014/08/26 职场文书
缓刑期间思想汇报范文
2014/10/10 职场文书
费城故事观后感
2015/06/10 职场文书
2015年秋季运动会广播稿
2015/08/19 职场文书
2017大学生寒假社会实践心得体会
2016/01/14 职场文书