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 相关文章推荐
用Greasemonkey 脚本收藏网站会员信息到本地
Oct 26 Javascript
js 表单提交后按钮变灰的实例代码
Aug 16 Javascript
Javascript中的五种数据类型详解
Dec 26 Javascript
简介JavaScript中Boolean.toSource()方法的使用
Jun 05 Javascript
20分钟轻松创建自己的Bootstrap站点
May 12 Javascript
bootstrap精简教程_动力节点Java学院整理
Jul 14 Javascript
微信小程序自定义多选事件的实现代码
May 17 Javascript
vue 弹窗时 监听手机返回键关闭弹窗功能(页面不跳转)
May 10 Javascript
微信小程序环境下将文件上传到OSS的方法步骤
May 31 Javascript
微信小程序之下拉列表实现方法解析(附完整源码)
Aug 23 Javascript
vue.js的简单自动求和计算实例
Nov 08 Javascript
Vue.js 中制作自定义选择组件的代码附演示demo
Feb 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
PHP 定界符 使用技巧
2009/06/14 PHP
php绝对路径与相对路径之间关系的的分析
2010/03/03 PHP
php数组去重的函数代码
2013/02/03 PHP
你需要知道的JavsScript可以做什么?
2007/06/29 Javascript
推荐一些非常不错的javascript学习资源站点
2007/08/29 Javascript
JavaScript入门教程(3) js面向对象
2009/01/31 Javascript
jQuery AjaxQueue改进步骤
2011/10/06 Javascript
php+js实现倒计时功能
2014/06/02 Javascript
js中函数调用的两种常用方法使用介绍
2014/07/17 Javascript
浅谈JS原生Ajax,GET和POST
2016/06/08 Javascript
AngularJS入门教程引导程序
2016/08/18 Javascript
基于bootstrop常用类总结(推荐)
2017/09/11 Javascript
BACKBONE.JS 简单入门范例
2017/10/17 Javascript
JS添加或删除HTML dom元素的方法实例分析
2019/03/05 Javascript
在layui中layer弹出层点击事件无效的解决方法
2019/09/05 Javascript
layer的prompt弹出框,点击回车,触发确定事件的方法
2019/09/06 Javascript
微信小程序自定义菜单切换栏tabbar组件代码实例
2019/12/30 Javascript
Python三元运算实现方法
2015/01/12 Python
python定时执行指定函数的方法
2015/05/27 Python
详解Python nose单元测试框架的安装与使用
2017/12/20 Python
利用pyinstaller将py文件打包为exe的方法
2018/05/14 Python
python配置grpc环境
2019/01/01 Python
浅谈keras使用中val_acc和acc值不同步的思考
2020/06/18 Python
python exit出错原因整理
2020/08/31 Python
美国学校校服,儿童和婴儿服装:Cookie’s Kids
2016/10/14 全球购物
养殖行业的创业计划书
2014/01/05 职场文书
财务会计毕业生个人求职信
2014/02/03 职场文书
医学院毕业生自荐信范文
2014/03/06 职场文书
实习公司领导推荐函
2014/05/21 职场文书
2014财务人员自我评价范文
2014/09/21 职场文书
有限责任公司股东合作协议书
2014/12/02 职场文书
追悼会答谢词
2015/01/05 职场文书
2015最新民情日记范文
2015/06/26 职场文书
红歌会主持词
2015/07/02 职场文书
pytorch训练神经网络爆内存的解决方案
2021/05/22 Python
Win11 Beta 预览版 22621.575 和 22622.575更新补丁KB5016694发布(附更新内容大全)
2022/08/14 数码科技