首页 > web前端 > js教程 > 正文

JavaScript实现的搜索及高亮显示功能示例

韦小宝
发布: 2018-01-22 09:56:43
原创
2228人浏览过

这篇文章主要介绍了javascript实现的搜索及高亮显示功能,涉及javascript字符遍历与页面元素属性相关操作技巧,对javascript感兴趣的朋友可以参考下本篇文章

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

效果图:

html:

立即学习Java免费学习笔记(深入)”;

1

2

3

4

5

6

7

8

9

<p class="contracts-header">名称: <input type="text" value="" id="search_contract_name"></p>

<p class="contracts-header">代码: <input type="text" value="" id="search_contract_code" placeholder="不区分大小写"></p>

<p class="contracts-header"><button onclick="search()">查找</button></p>

<p 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>

</p>

登录后复制

javascript:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

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如何计算对象长度

javascript中的typeof和类型判断详解

以上就是JavaScript实现的搜索及高亮显示功能示例的详细内容,更多请关注php中文网其它相关文章!

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号