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

这样写为什么回不过去呢

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>挑战题</title>
        <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>
    </head>
    
    <body>
    <div><ul>
    <li>001</li>
    <li>002</li>
    <li>003</li>
    <li>004</li>
    <li>005</li>
    <li>006</li>
    <li>007</li>
    <li><a href="javascript:;">更多</a></li>
    </ul></div>
<script type="text/javascript">
$(function(){
    $("li:eq(0)").css("display","none");
    $("li:eq(3)").css("display","none");
    $("li:eq(4)").css("display","none");
    $("li:has('a')").click(function(){
        if($("li:has('a')").text()==="更多"){
            $("li:has('a')").text("简化");
           $("li:has('a')").css("display","list-item");
            $("li:eq(3)").css("display","list-item");
            $("li:eq(4)").css("display","list-item");
        }else{$("li:has('a')").text("更多");
         $("li:eq(0)").css("display","none");
       $("li:eq(3)").css("display","none");
       $("li:eq(4)").css("display","none");
        }
    })
    })
</script>
    </body>
</html>

运行结果:http://img.imooc.com/5708c68800012b9d01400144.jpg点击更多出现:http://img.imooc.com/5708c6a4000179cc01200173.jpg这时简化这里不是超链接,但是点击简化还可以运行,运行结果:http://img.imooc.com/5708c6d8000100ce01230152.jpg之后在点击没就不动了,什么原因

正在回答

4 回答

原因我找到了,$("li:has('a')").text("简化");这样写的时候并没有改变a标签的text,导致你后面判断条件if($("li:has('a')").text()==="更多") 不对,这里一轮循环后li:has('a')").text()===“”;所以就会一直执行else里面的代码,改的方法很简单,( li:has('a') a).text("简化")即可,更多也是同理。下面的代码亲测有效。

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>挑战题</title>
    <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>
</head>

<body>
    <div><ul>
        <li>001</li>
        <li>002</li>
        <li>003</li>
        <li>004</li>
        <li>005</li>
        <li>006</li>
        <li>007</li>
        <li><a href="#">更多</a></li>
    </ul></div>
    <script type="text/javascript">
    $(function(){
        $("li:eq(0)").css("display","none");
        $("li:eq(3)").css("display","none");
        $("li:eq(4)").css("display","none");
        $("li:has('a')").click(function(){
            if($("li:has('a')").text()==="更多"){
                 console.log($("li:has('a')").text()+"---1");
                $("li:has('a') a" ).text("简化");
                $("li:has('a')").css("display","list-item");
                $("li:eq(3)").css("display","list-item");
                $("li:eq(4)").css("display","list-item");
                console.log("1");
            }else{
                console.log($("li:has('a') ").text()+"---2");
                $("li:has('a') a" ).text("更多");
                $("li:eq(0)").css("display","none");
                $("li:eq(3)").css("display","none");
                $("li:eq(4)").css("display","none");
                console.log("2");
        }
    })
    })
    </script>
</body>
</html>


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

看看是不是.text()方法的适用范围不对。

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

我试试你的代码。我不知道为什么把你的a标签从li里移到ul外面就行了  我实现效果

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

  $("li:has('a')").text("简化");  改为  $("a").text("简化");

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

aid123321 提问者

我知道这样可以,我$("li:has('a')").text("简化");这样写 也同样的定位到a标签元素了啊,为什么不可以
2016-04-10 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

这样写为什么回不过去呢

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号