javascript 搜索并高亮显示

简介: 2015年12月22日 15:45:08 星期二 情景: 用来筛选列表中的数据, 由于单条数据很简短, 没有用php+mysql去实现筛选功能, 只用javascript进行筛选, 匹配的高亮, 或者将不匹配的隐藏掉 效果图: html:  1 名称: 2 代码: 3 ...

2015年12月22日 15:45:08 星期二

情景: 用来筛选列表中的数据, 由于单条数据很简短, 没有用php+mysql去实现筛选功能, 只用javascript进行筛选, 匹配的高亮, 或者将不匹配的隐藏掉

效果图:

html: 

 1 <div class="contracts-header">名称: <input type="text" value="" id="search_contract_name"></div>
 2 <div class="contracts-header">代码: <input type="text" value="" id="search_contract_code" placeholder="不区分大小写"></div>
 3 <div class="contracts-header"><button onclick="search()">查找</button></div>
 4 
 5 <div id="contracts-list">
 6    <ul>
 7     <li><input type="checkbox" name="contract[]" value="code|name" /><span>name(code)</span></li>
 8     <li><input type="checkbox" name="contract[]" value="code|name" /><span>name(code)</span></li>
 9    </ul>
10 </div>

javascript:

 1 function search()
 2 {
 3     var search_contract_name = $("#search_contract_name").val();
 4     var search_contract_code = $("#search_contract_code").val();
 5 
 6     if (search_contract_name && search_contract_code) { //两个输入框都有值
 7         search_contract_code = search_contract_code.toLowerCase(); //不区分大小写, 全部转换为小写, 下同
 8         $("input[name='contract[]']").each(
 9                 function () {
10                     var code_name = this.value;
11                     var search_code = code_name.toLowerCase().indexOf(search_contract_code); 
12                     var search_name = code_name.toLowerCase().indexOf(search_contract_name);
13                     if (search_code >=0 && search_name >=0 ) {
14                         //  this.nextSibling.style.backgroundColor = "#FFDEAD"; //高亮匹配到的
15                         this.parentNode.style.display = 'block';
16                     } else {
17                         //  this.nextSibling.style.backgroundColor = "";
18                         this.parentNode.style.display = 'none'; //隐藏不匹配的
19                     }
20                 }
21         );
22     } else if(search_contract_name || search_contract_code) { //只有一个输入框有值
23         search_contract_name = search_contract_name.length ? search_contract_name : 'xxx'; //默认为xxx是因为不可能存在xxx
24         search_contract_code = search_contract_code.length ? search_contract_code.toLowerCase() : 'xxx';
25         $("input[name='contract[]']").each(
26             function () {
27                 var code_name = this.value;
28                 var search_code = code_name.toLowerCase().indexOf(search_contract_code);
29                 var search_name = code_name.toLowerCase().indexOf(search_contract_name);
30                 if (search_code >=0 || search_name >=0 ) {
31                     //  this.nextSibling.style.backgroundColor = "#FFDEAD";
32                     this.parentNode.style.display = 'block';
33                 } else {
34                     //  this.nextSibling.style.backgroundColor = "";
35                     this.parentNode.style.display = 'none';
36                 }
37             }
38         );
39     }
40 }

 

目录
相关文章
|
7月前
|
JavaScript 前端开发
JavaScript实现鼠标放上去之后高亮显示且隔行换色
JavaScript实现鼠标放上去之后高亮显示且隔行换色
|
7月前
|
JavaScript 前端开发
js中模糊搜索 模糊匹配如何实现?
js中模糊搜索 模糊匹配如何实现?
|
6月前
|
JavaScript 前端开发
JS如何配合input框实现模糊搜索
JS如何配合input框实现模糊搜索
179 2
|
2月前
|
人工智能 JavaScript 网络安全
ToB项目身份认证AD集成(三完):利用ldap.js实现与windows AD对接实现用户搜索、认证、密码修改等功能 - 以及针对中文转义问题的补丁方法
本文详细介绍了如何使用 `ldapjs` 库在 Node.js 中实现与 Windows AD 的交互,包括用户搜索、身份验证、密码修改和重置等功能。通过创建 `LdapService` 类,提供了与 AD 服务器通信的完整解决方案,同时解决了中文字段在 LDAP 操作中被转义的问题。
|
4月前
|
JavaScript 数据安全/隐私保护 Python
网易云音乐搜索接口JS逆向: Params、encSecKey加密和AES实战
网易云音乐搜索接口JS逆向: Params、encSecKey加密和AES实战
268 4
|
4月前
|
JavaScript 前端开发 安全
前程无忧搜索接口 JS 逆向:阿里系acw_sc__v2和Sign加密
前程无忧搜索接口 JS 逆向:阿里系acw_sc__v2和Sign加密
132 0
|
5月前
|
数据采集 算法 JavaScript
揭开JavaScript字符串搜索的秘密:indexOf、includes与KMP算法
JavaScript字符串搜索涵盖`indexOf`、`includes`及KMP算法。`indexOf`返回子字符串位置,`includes`检查是否包含子字符串。KMP是高效的搜索算法,尤其适合长模式匹配。示例展示了如何在数据采集(如网页爬虫)中使用这些方法,结合代理IP进行安全搜索。代码示例中,搜索百度新闻结果并检测是否含有特定字符串。学习这些技术能提升编程效率和性能。
138 1
揭开JavaScript字符串搜索的秘密:indexOf、includes与KMP算法
|
4月前
|
前端开发 JavaScript 开发者
fuse.js前端搜索简单使用的三个案例
通过这三个例子可以看出,Fuse.js 是一个功能丰富、易于实现的前端搜索库。它使开发者能够便捷地实现从基础到高级的搜索功能,无论是简单的列表搜索还是实时的搜索建议,都能够高效、精确地提供给用户所需的信息。
234 0
|
4月前
|
JavaScript
js分页+搜索
js分页+搜索
48 0
|
6月前
|
JavaScript 前端开发
JS实现select框实现模糊搜索
JS实现select框实现模糊搜索