$(document).ready(function () {        var len = 2; //控制要显示的数量
        var gao = $(".div_d").height() * ($(".div_d").length / 2);
        var xgao = $(".div_d").height()        var arr = $(".div_d:not(:hidden)");
        if (arr.length > len) {
            $('.div_d:gt(' + (len - 1) + ')').hide();
        }
        $('.div_btn').click(function () {            var arr = $(".div_d:not(:hidden)");//这里要重新获取,要不是上次的缓存
            if (arr.length > len) {//逻辑反了
                $('.div_d:gt(' + (len - 1) + ')').hide();
                $('.div_c').height(xgao);
            }
            else {
                $('.div_d:gt(' + (len - 1) + ')').show();
                $('.div_c').height(gao);
            }
        })
    });

解决方案 »

  1.   

    同意1楼,var arr是在点击事件外部获得的,所以只保留第一次获得的数据,click中要重新获取
      

  2.   

    因为你的arr.length的长度是不变的。
      

  3.   


    请问下 如果我这里只有3个<div class="div_d"></div> 高度就不能算了 请问下有什么办法解决吗
      

  4.   

    你这个就不用设置高度,隐藏起来就用内部容器的高度就好了<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {        var len = 2; //控制要显示的数量
            var gao = $(".div_d").height() * ($(".div_d").length / 2);
            var xgao = $(".div_d").height()        var arr = $(".div_d:not(:hidden)");
            if (arr.length > len) {
                $('.div_d:gt(' + (len - 1) + ')').hide();
            }
            $('.div_btn').click(function () {            var arr = $(".div_d:not(:hidden)"); //这里要重新获取,要不是上次的缓存
                if (arr.length > len) {//逻辑反了
                    $('.div_d:gt(' + (len - 1) + ')').hide();
                   // $('.div_c').height(xgao);
                }
                else {
                    $('.div_d:gt(' + (len - 1) + ')').show();
                  //  $('.div_c').height(gao);
                }
            })
        });
    </script>
    <style type="text/css">
    *{
        margin:0;
        padding:0;
        }
    .div{
        width:800px;
        float:left;
        }
    .div_c{
        width:800px;
       /* height:320px;*/
        float:left;
        }
    .div_d{
        width:373px;
        height:300px;
        border:1px solid #BFBFBF;
        float:left;
        margin-right:10px;
        margin-top:10px;
        }
    .div_btn{
        width:800px;
        height:30px;
        float:left;
        background:#099;
        color:#FFF;
        line-height:30px;
        text-align:center;
        margin-top:20px;
        cursor:pointer;
        }
    </style>
    </head>
     
    <body>
    <div class="div">
     <div class="div_c">
      <div class="div_d"></div>
      <div class="div_d"></div>
      <div class="div_d"></div>
      <div class="div_d"></div>
     </div>
     <div class="div_btn">点击</div>
    </div>
    </body>
    </html>