javascript - 为什么只有前两次点击有效。?
天蓬老师
天蓬老师 2017-04-11 10:23:05
[JavaScript讨论组]
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>挑战题</title>
    </head>
    <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript">    
    </script>
    <body>
        <ul>
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
            <li style="display:none" >5</li>
            <li style="display:none">6</li>
            <li>7</li>
        </ul>
        <a href='#' >更多</a>
        <script type='text/javascript'>
        $("a").click(function(){
            if($("a").text()==='更多'){
              $("li[style='display:none']").show();
             $("a").text("简化");
        }else if($("a").text()==='简化'){
         $("li:eq(4)").hide();
         $("li:eq(5)").hide();
           $("a").text("更多");
        }
    }
   ); 
        </script>
    </body>
</html>
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(4)
PHP中文网

改成下面这样就可以啦,因为你调用 show 这个方法会使 li 的行内样式设置成 style="display: none;" ,所以这个时候通过 $('li[display:none]') 选择器使选择不到的

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>挑战题</title>
    </head>
    <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript">    
    </script>
    <body>
        <ul>
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
            <li style="display: none;" >5</li>
            <li style="display: none;">6</li>
            <li>7</li>
        </ul>
        <a href='#' >更多</a>
        <script type='text/javascript'>
        $("a").click(function(){
            if($("a").text()==='更多'){
              $("li[style='display: none;']").show();
             $("a").text("简化");
        }else if($("a").text()==='简化'){
         $("li:eq(4)").hide();
         $("li:eq(5)").hide();
           $("a").text("更多");
        }
    }
   ); 
        </script>
    </body>
</html>
天蓬老师

重点在这一行

$("li[style='display:none']").show();
修改为:

$("li:eq(4),li:eq(5)").show();

PHPz
  </script>
    <body>
        <ul>
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
            <li style="display: none;" >5</li>
            <li style="display: none;">6</li>
            <li>7</li>
        </ul>
        <a href='#' >更多</a>
        <script type='text/javascript'>
        $("a").click(function(){
            if($("a").text()==='更多'){
              $("li[style='display: none;']").show();
             $("a").text("简化");
        }else if($("a").text()==='简化'){
         $("li:eq(4)").hide();
         $("li:eq(5)").hide();
           $("a").text("更多");
        }
    }
   ); 
        </script>

跟你的代码比较一下你就知道问题出在哪里了,我就不告诉你了。

PHP中文网
 $("li[style*='display']").show();

这样可以运行

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

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