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代码加载优化方法
Jan 30 Javascript
Textbox控件注册回车事件及触发按钮提交事件具体实现
Mar 04 Javascript
JS、jquery实现几分钟前、几小时前、几天前等时间差显示效果的代码实例分享
Apr 11 Javascript
Jquery时间轴特效(三种不同类型)
Nov 02 Javascript
微信jssdk在iframe页面失效问题的解决措施
Mar 03 Javascript
jQuery获取父元素节点、子元素节点及兄弟元素节点的方法
Apr 14 Javascript
关于不同页面之间实现参数传递的几种方式讨论
Feb 13 Javascript
微信小程序  TLS 版本必须大于等于1.2问题解决
Feb 22 Javascript
Element-UI Table组件上添加列拖拽效果实现方法
Apr 14 Javascript
angularjs $http调用接口的方式详解
Aug 13 Javascript
JavaScript制作3D旋转相册
Aug 02 Javascript
javascript实现弹幕墙效果
Nov 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
建立动态的WML站点(一)
2006/10/09 PHP
php chr() ord()中文截取乱码问题解决方法
2008/09/08 PHP
很让人受教的 提高php代码质量36计
2012/09/05 PHP
PHP开发微信支付的代码分享
2014/05/25 PHP
php获取四位字母和数字的随机数的实现方法
2015/01/09 PHP
thinkPHP删除前弹出确认框的简单实现方法
2016/05/16 PHP
php中关于长度计算容易混淆的问题分析
2016/05/27 PHP
php微信公众平台开发之微信群发信息
2016/09/13 PHP
PHP中字符串长度的截取用法示例
2017/01/12 PHP
PHP实现简单注册登录系统
2020/12/28 PHP
javascript 变量作用域 代码分析
2009/06/26 Javascript
Bootstrap企业网站实战项目4
2016/10/14 Javascript
使用 Node.js 对文本内容分词和关键词抽取
2017/05/27 Javascript
基于twbsPagination.js分页插件使用心得(分享)
2017/10/21 Javascript
详解微信小程序文件下载--视频和图片
2019/04/24 Javascript
微信小程序 调用远程接口 给全局数组赋值代码实例
2019/08/13 Javascript
[00:10]DOTA2全国高校联赛 以DOTA2会友
2018/05/30 DOTA
深入理解Python中的内置常量
2017/05/20 Python
python使用 HTMLTestRunner.py生成测试报告
2017/10/20 Python
浅谈python中np.array的shape( ,)与( ,1)的区别
2018/06/04 Python
对python中的乘法dot和对应分量相乘multiply详解
2018/11/14 Python
Python 输入一个数字判断成绩分数等级的方法
2018/11/15 Python
ParcelABC西班牙:包裹运送和快递服务
2019/12/24 全球购物
汽车电子与维修专业大学生求职信
2013/09/28 职场文书
入党转预备思想汇报
2014/01/07 职场文书
商超业务员岗位职责
2014/03/12 职场文书
中班幼儿评语大全
2014/04/30 职场文书
国庆促销活动总结
2014/08/29 职场文书
2014年小学生教师节演讲稿范文
2014/09/10 职场文书
2014年保洁工作总结
2014/11/24 职场文书
2015年公司新年寄语
2014/12/08 职场文书
运动会100米加油稿
2015/07/21 职场文书
使用react-virtualized实现图片动态高度长列表的问题
2021/05/28 Javascript
MySQL GRANT用户授权的实现
2021/06/18 MySQL
MySQL脏读,幻读和不可重复读
2022/05/11 MySQL
oracle delete误删除表数据后如何恢复
2022/06/28 Oracle