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加强之自定义callback示例
Sep 21 Javascript
JavaScript中pop()方法的使用教程
Jun 09 Javascript
九种原生js动画效果
Nov 11 Javascript
JavaScript黑洞数字之运算路线查找算法(递归算法)实例
Jan 28 Javascript
redux中间件之redux-thunk的具体使用
Apr 17 Javascript
Jquery的Ajax技术使用方法
Jan 21 jQuery
Vue3.0结合bootstrap创建多页面应用
May 28 Javascript
vue使用showdown并实现代码区域高亮的示例代码
Oct 17 Javascript
vue项目中使用bpmn为节点添加颜色的方法
Apr 30 Javascript
vue如何搭建多页面多系统应用
Jun 17 Javascript
解决echarts echarts数据动态更新和dataZoom被重置问题
Jul 20 Javascript
JS数组方法some、every和find的使用详情
Oct 05 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 zlib压缩和解压缩swf文件的代码
2008/12/30 PHP
phpmyadmin3 安装配置图解教程
2012/03/29 PHP
深入了解 register_globals (附register_globals=off 网站打不开的解决方法)
2012/06/27 PHP
PHP基于cookie实现统计在线人数功能示例
2019/01/16 PHP
JAVASCRIPT对象及属性
2007/02/13 Javascript
javascript 函数式编程
2007/08/16 Javascript
jquery中dom操作和事件的实例学习 下拉框应用
2011/12/01 Javascript
js去字符串前后空格5种实现方法及比较
2013/04/03 Javascript
jquery实现textarea 高度自适应
2015/03/11 Javascript
JavaScript与java语言有什么不同
2016/09/22 Javascript
JavaScript在form表单中使用button按钮实现submit提交方法
2017/01/23 Javascript
JS获取鼠标位置距浏览器窗口距离的方法示例
2017/04/11 Javascript
微信分享调用jssdk实例
2017/06/08 Javascript
使用webpack打包koa2 框架app
2018/02/02 Javascript
Servlet3.0与纯javascript通过Ajax交互的实例详解
2018/03/18 Javascript
JavaScript执行环境及作用域链实例分析
2018/08/01 Javascript
swiper.js插件实现pc端文本上下滑动功能示例
2018/12/03 Javascript
使用 Vue cli 3.0 构建自定义组件库的方法
2019/04/30 Javascript
react 组件传值的三种方法
2019/06/03 Javascript
Python下载懒人图库JavaScript特效
2015/05/28 Python
python抽象基类用法实例分析
2015/06/04 Python
Python中的os.path路径模块中的操作方法总结
2016/07/07 Python
Python实现的HMacMD5加密算法示例
2018/04/03 Python
python实现视频读取和转化图片
2019/12/10 Python
浅谈pytorch torch.backends.cudnn设置作用
2020/02/20 Python
python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法
2020/02/26 Python
python 写一个文件分发小程序
2020/12/05 Python
HTML5 Canvas绘制圆点虚线实例
2015/01/01 HTML / CSS
德国体育用品网上商店:SC24.com
2016/08/01 全球购物
预备党员思想汇报范文
2014/01/11 职场文书
综合实践活动方案
2014/02/14 职场文书
工程造价专业求职信
2014/07/17 职场文书
公司向个人借款协议书范本
2014/10/09 职场文书
党员批评与自我批评
2014/10/15 职场文书
三峡人家导游词
2015/01/31 职场文书
Python中np.random.randint()参数详解及用法实例
2022/09/23 Python