为了账号安全,请及时绑定邮箱和手机立即绑定

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

为什么“夫唯不争”这位朋友的代码有时候多点击几次“更多”“简化”就提示出错了呢~点赞数最多的这个没有显示出错。http://img1.sycdn.imooc.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 回答

我是这样写的,“夫唯不争”这位朋友的代码我,个人感觉脱离结构和行为分离的想法,所以不推荐使用。而且他假如加更多的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();
                    }
                });
        })


0 回复 有任何疑惑可以回复我~
#1

Yuuyu 提问者

感谢!
2016-07-17 回复 有任何疑惑可以回复我~

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

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

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

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

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

                }

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

0 回复 有任何疑惑可以回复我~
#1

Yuuyu 提问者

谢谢~~
2016-07-17 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
jQuery基础课程
  • 参与学习       154802    人
  • 解答问题       7184    个

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

进入课程

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信