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 相关文章推荐
js类 from qq
Nov 13 Javascript
jquery异步请求实例代码
Jun 21 Javascript
jquery validate添加自定义验证规则(验证邮箱 邮政编码)
Dec 04 Javascript
推荐一个自己用的封装好的javascript插件
Jan 29 Javascript
Jquery 分页插件之Jquery Pagination
Aug 25 Javascript
JavaScript浏览器对象之一Window对象详解
Jun 03 Javascript
在js中实现邮箱格式的验证方法(推荐)
Oct 24 Javascript
el表达式 写入bootstrap表格数据页面的实例代码
Jan 11 Javascript
async/await让异步操作同步执行的方法详解
Nov 01 Javascript
纯JS实现五子棋游戏
May 28 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
Jul 22 Javascript
JS轮播图的实现方法
Aug 24 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
php5中date()得出的时间为什么不是当前时间的解决方法
2008/06/30 PHP
PHP 多进程 解决难题
2009/06/22 PHP
Thinkphp使用mongodb数据库实现多条件查询方法
2014/06/26 PHP
PHP按指定键值对二维数组进行排序的方法
2015/12/22 PHP
WordPress中用于创建以及获取侧边栏的PHP函数讲解
2015/12/29 PHP
PHP版单点登陆实现方案的实例
2016/11/17 PHP
基于PHP的加载类操作以及其他两种魔术方法的应用实例
2017/08/28 PHP
php中输出json对象的值(实现方法)
2018/03/07 PHP
javascript基础之查找元素的详细介绍(访问节点)
2013/07/05 Javascript
Javascript实现简单的富文本编辑器附演示
2014/06/16 Javascript
angularjs自定义ng-model标签的属性
2016/01/21 Javascript
漂亮! js实现颜色渐变效果
2016/08/12 Javascript
详解webpack es6 to es5支持配置
2017/05/04 Javascript
JavaScript实现三级联动菜单实例代码
2017/06/26 Javascript
原生JavaScript实现的简单放大镜效果示例
2018/02/07 Javascript
使用typescript开发angular模块并发布npm包
2018/04/19 Javascript
浅谈Vue项目骨架屏注入实践
2019/08/05 Javascript
vue resource发送请求的几种方式
2019/09/30 Javascript
vue如何在项目中调用腾讯云的滑动验证码
2020/07/15 Javascript
[01:08:43]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第一场 1月9日
2021/03/11 DOTA
python实现从一组颜色中找出与给定颜色最接近颜色的方法
2015/03/19 Python
Python实现八大排序算法
2016/08/13 Python
Python实现的批量修改文件后缀名操作示例
2018/12/07 Python
使用Python opencv实现视频与图片的相互转换
2019/07/08 Python
Django CSRF跨站请求伪造防护过程解析
2019/07/31 Python
python 如何将数据写入本地txt文本文件的实现方法
2019/09/11 Python
Numpy中ndim、shape、dtype、astype的用法详解
2020/06/14 Python
将一个数的从第5位开始的7个数取出,其余位置0
2016/05/26 面试题
JavaScript实现前端网页版倒计时
2021/03/24 Javascript
公司年会搞笑主持词
2014/03/24 职场文书
精神文明建设先进工作者事迹材料
2014/05/02 职场文书
上班离岗检讨书
2014/09/10 职场文书
村党建工作汇报材料
2014/11/02 职场文书
关于感谢信的范文
2015/01/23 职场文书
详解Redis集群搭建的三种方式
2021/05/31 Redis
关于redisson缓存序列化几枚大坑说明
2021/08/04 Redis