第一位和第二个朋友的代码有什么区别或者利弊吗

来源:3-13 编程练习

Yuuyu

2016-07-16 21:42

为什么“夫唯不争”这位朋友的代码有时候多点击几次“更多”“简化”就提示出错了呢~点赞数最多的这个没有显示出错。http://img.mukewang.com/578a39980001f83f11220276.jpg

代码如下①

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>

<title>挑战题</title>

</head>

<body>

    <ul>

        <li>001</li>

        <li>002</li>

        <li>003</li>

        <li>004</li>

        <li>005</li>

        <li>006</li>

        <li>007</li>

    </ul>

    <a  href="javascript:;">更多</a>

    <script>

        $(function(){

            $("li:eq(3)").css("display","none");

            $("li:eq(4)").css("display","none");

            $("a").click(function(){

                if($("a").text() === "更多"){

                    $("a").text("简化");

                    $("li:eq(3)").css("display","list-item");

                    $("li:eq(4)").css("display","list-item");

                }else{

                    $("a").text("更多");

                    $("li:eq(3)").css("display","none");

                    $("li:eq(4)").css("display","none");                    

                }

            });

        })

    </script>

</body>

</html>

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>挑战题</title>

<style>

    .no{display:none;}

</style>

</head>

<body>

    <ul>

        <li>11</li>

        <li>22</li>

        <li>33</li>

        <li>44</li>

        <li class="no">55</li>

        <li class="no">66</li>

        <li>77</li>

    </ul>

    <a href="#" id="aaa">更多</a>

    <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>

    <script>

        $(function(){

            $("#aaa").click(function(){

                var text = $("#aaa").text();

                if(text == "更多"){

                    $("#aaa").html("简化");

                    $("li[class=no]").show();

                }else{

                    $("#aaa").html("更多");

                    $("li[class=no]").hide();

                }

            });

        });

    </script>

</body>

</html>


写回答 关注

2回答

  • ParkerYoung
    2016-07-17 00:04:35
    已采纳

    我是这样写的,“夫唯不争”这位朋友的代码我,个人感觉脱离结构和行为分离的想法,所以不推荐使用。而且他假如加更多的li 就逐个在结构上加class ,第一个用eq过滤选择器也不太推荐,gt选择器比较好 大于索引值的都隐藏,加多少li都可以简化四个。隐藏更多。

            $(function(){
               $("li:gt(4)").css("display","none");
                $("#link").click(function(){
                    if ($("#link").text()==='更多'){
                        $("#link").text('简化');
                        $("li:hidden").show();
                    }else{
                        $("#link").text('更多');
                        $("li:gt(4)").hide();
                        }
                    });
            })


    Yuuyu

    感谢!

    2016-07-17 12:06:45

    共 1 条回复 >

  • 麻婆豆腐
    2016-07-16 23:37:35

    if($("a").text() === "更多")这里多了一个“=”号。

    if($("a").text() == "更多"){

                        $(this).text("简化");

                        $("li:eq(3)").css("display","block");

                        $("li:eq(4)").css("display","block");

                    }

    写法很多差异性,能实现就行。

    Yuuyu

    谢谢~~

    2016-07-17 12:07:46

    共 1 条回复 >

jQuery基础课程

加入课程学习,有效提高前端开发速度

154706 学习 · 7289 问题

查看课程