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 相关文章推荐
关于恒等于(===)和非恒等于(!==)
Aug 20 Javascript
Extjs中常用表单介绍与应用
Jun 07 Javascript
用jquery中插件dialog实现弹框效果实例代码
Nov 15 Javascript
js定时器的使用(实例讲解)
Jan 06 Javascript
JavaScript编写连连看小游戏
Jul 07 Javascript
简单谈谈js的数据类型
Sep 25 Javascript
AngularJS的$location使用方法详解
Oct 19 Javascript
vue.js todolist实现代码
Oct 29 Javascript
JS实现为动态添加的元素增加事件功能示例【基于事件委托】
Mar 21 Javascript
在layui tab控件中载入外部html页面的方法
Sep 04 Javascript
Vue2.4+新增属性.sync、$attrs、$listeners的具体使用
Mar 08 Javascript
vue全局使用axios的操作
Sep 08 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 图片上传实现代码 带详细注释
2010/04/29 PHP
PHP 杂谈《重构-改善既有代码的设计》之三 重新组织数据
2012/04/09 PHP
php实现在线生成条形码示例分享(条形码生成器)
2013/12/30 PHP
php实现上传图片保存到数据库的方法
2015/02/11 PHP
php的crc32函数使用时需要注意的问题(不然就是坑)
2015/04/21 PHP
php设计模式之单例模式代码
2016/06/11 PHP
PHP目录与文件操作技巧总结(创建,删除,遍历,读写,修改等)
2016/09/11 PHP
jquery获取特定name所有选中的checkbox,支持IE9标准模式
2013/03/18 Javascript
Google Maps API地图应用示例分享
2014/10/23 Javascript
jquery中attr和prop的区别分析
2015/03/16 Javascript
js实现简洁的TAB滑动门效果代码
2015/09/06 Javascript
JS函数的几种定义方式分析
2015/12/17 Javascript
JavaScript图像延迟加载库Echo.js
2016/04/05 Javascript
动态加载js、css的简单实现代码
2016/05/26 Javascript
ExtJS 4.2 Grid组件单元格合并的方法
2016/10/12 Javascript
TypeScript入门-接口
2017/03/30 Javascript
angular2系列之路由转场动画的示例代码
2017/11/09 Javascript
Vuex 在Vue 组件中获得Vuex 状态state的方法
2018/08/27 Javascript
Vue 使用formData方式向后台发送数据的实现
2019/04/14 Javascript
[52:06]完美世界DOTA2联赛决赛日 Inki vs LBZS 第一场 11.08
2020/11/10 DOTA
python实现在sqlite动态创建表的方法
2015/05/08 Python
Python列表生成式与生成器操作示例
2018/08/01 Python
selenium+python 对输入框的输入处理方法
2018/10/11 Python
Python目录和文件处理总结详解
2019/09/02 Python
django 解决自定义序列化返回处理数据为null的问题
2020/05/20 Python
Python小白垃圾回收机制入门
2020/06/09 Python
HTML5制作3D爱心动画教程 献给女友浪漫的礼物
2014/11/05 HTML / CSS
找到不普通的东西:Bonanza
2016/10/20 全球购物
学生个人的自我评价分享
2013/11/05 职场文书
药学专业个人的自我评价
2013/12/31 职场文书
寒假思想汇报
2014/01/10 职场文书
工程开工庆典邀请函
2014/02/01 职场文书
公司中层管理培训心得体会
2016/01/11 职场文书
sql中mod()函数取余数的用法
2021/05/29 SQL Server
vue中this.$http.post()跨域和请求参数丢失的解决
2022/04/08 Vue.js
Linux中如何安装并部署Redis
2022/04/18 Servers