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获取当前select 元素值的代码
Apr 19 Javascript
JQuery实现倒计时按钮的实现代码
Mar 23 Javascript
JS小功能(setInterval实现图片效果显示时间)实例代码
Nov 28 Javascript
Jquery 监视按键,按下回车键触发某方法的实现代码
May 11 Javascript
JavaScript实现多种排序算法
Feb 24 Javascript
JavaScript中的Array 对象(数组对象)
Jun 02 Javascript
KnockoutJS 3.X API 第四章之表单value绑定
Oct 10 Javascript
javascript简易画板开发
Apr 12 Javascript
使用Javascript监控前端相关数据的代码
Oct 27 Javascript
微信小程序上传图片实例
May 28 Javascript
vue.js响应式原理解析与实现
Jun 22 Javascript
解决vue 项目引入字体图标报错、不显示等问题
Sep 01 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过滤html中的其他网站链接的方法(域名白名单功能)
2014/04/24 PHP
destoon二次开发入门示例
2014/06/20 PHP
PHP正则替换函数preg_replace和preg_replace_callback使用总结
2014/09/22 PHP
List the Stored Procedures in a SQL Server database
2007/06/20 Javascript
javascript 解决表单仍然提交即使监听处理函数返回false
2010/03/14 Javascript
xss文件页面内容读取(解决)
2010/11/28 Javascript
jQuery学习总结之元素的相对定位和选择器(持续更新)
2011/04/26 Javascript
Javascript表格翻页效果的具体实现
2013/10/05 Javascript
js Array操作的最简短最容易理解方法
2013/12/09 Javascript
BootStrap selectpicker
2016/06/20 Javascript
bootstrap表格分页实例讲解
2016/12/30 Javascript
js实现简单的获取验证码按钮效果
2017/03/03 Javascript
AngularJS+Bootstrap3多级导航菜单的实现代码
2017/08/16 Javascript
iframe高度自适应及隐藏滚动条的实例详解
2017/09/29 Javascript
vue axios 二次封装的示例代码
2017/12/08 Javascript
使用Angular CLI快速创建Angular项目的一些基本概念和写法小结
2018/04/22 Javascript
JavaScript表格隔行变色和Tab标签页特效示例【附jQuery版】
2019/07/11 jQuery
layer 刷新某个页面的实现方法
2019/09/05 Javascript
jQuery设置下拉框显示与隐藏效果的方法分析
2019/09/15 jQuery
js实现无限瀑布流实例方法
2019/09/16 Javascript
Vue v-text指令简单使用方法示例
2019/09/19 Javascript
ES6使用新特性Proxy实现的数据绑定功能实例
2020/05/11 Javascript
在Vue 中实现循环渲染多个相同echarts图表
2020/07/20 Javascript
ant-design表单处理和常用方法及自定义验证操作
2020/10/27 Javascript
[01:14:34]DOTA2上海特级锦标赛C组资格赛#2 LGD VS Newbee第一局
2016/02/28 DOTA
python实现的一个p2p文件传输实例
2014/06/04 Python
Python比较文件夹比另一同名文件夹多出的文件并复制出来的方法
2015/03/05 Python
python实现百万答题自动百度搜索答案
2018/01/16 Python
详解Python中的动态属性和特性
2018/04/07 Python
对python3 Serial 串口助手的接收读取数据方法详解
2019/06/12 Python
python 实现从高分辨图像上抠取图像块
2020/01/02 Python
三陽商会官方网站:Sanyo iStore
2019/05/15 全球购物
初中生思想道德自我评价
2015/03/09 职场文书
2016年母亲节寄语
2015/12/04 职场文书
合作协议书格式范本
2016/03/21 职场文书
Mysql中一千万条数据怎么快速查询
2021/12/06 MySQL