JQ 点击隐藏显示

<div class="div1">
    <ul>
    </ul>
    <div class='div2'></div>
</div>
<div class="div1">
    <ul>
    </ul>
    <div class='div2'></div>
</div>

点击div1,让div2显示,点下一个div1,让第一个div2隐藏,第二个div2显示,
怎么实现啊

阅读 4.6k
5 个回答

HTML:

<div class="div1">
    <ul></ul>
    <div class='div2'></div>
</div>
<div class="div1">
    <ul></ul>
    <div class='div2'></div>
</div>

CSS:

.div1 {
    width: 50px;
    height: 50px;
    background: yellow;
}
.div2 {
    width: 40px;
    height: 40px;
    background: red;
    display: none;
}

jQuery:

    $('.div1').click(function () {
       $(this).find('.div2').show()
               .end()
               .siblings('.div1').find('.div2').hide();
    });

仅仅想装B的用链式代码,写法可能有点拖沓。见谅。支持 scort 的写法。

$('.div1').click(function(){
    $('.div2').hide();
    $(this).find('.div2').show();
});
<!DOCTYPE html>
<html>
<head>
    <title>test</title>
    <meta charset="utf-8">
    <script type="text/javascript" src="http://cdn.bootcss.com/jquery/2.1.4/jquery.js"></script>
    <style>
        .div1{
            width: 200px;height: 200px;background: gold;
        }
        .div2{
            width: 100px;height: 100px;background: red;
        }
    </style>
</head>
<body>
<div>
    <div class="div1" id="fisrstdiv1">
        <div class='div2' id="firstdiv2">div2</div>
    </div>
    <br><br><br><br><br>
    <div class="div1" id="seconddiv1">
        <div class='div2' id="seconddiv2">div2</div>
    </div>
</div>
<script type="text/javascript">
    $(function(){
        $('#fisrstdiv1').click(function () {
            $('.div2').show();
        });
        $('#seconddiv1').click(function () {
            $('#firstdiv2').hide();
            $('#seconddiv2').show();
        });
    })

</script>
</body>
</html>

不知道是不是你要的

如果元素少的话,加个id写动作就是,没必要用同一个class。

    <div class="div1 active">
        我是div1
        <div class="div2" style="display: block;">我是div2</div>
    </div>
    <div class="div1">
        我是div1
        <div class="div2" style="display: none;">我是div2</div>
    </div>
    <script type="text/javascript">
        $(function(){
            $(document).on('click','.div1',function(){
                /*逻辑就是给当前显示的div1加上active,并展示当前点击的div1下的div2*/

                /*当然也可以直接使用css规定.div.active>.div2{display:block;}*/

                //检测点击的是否已经显示
                if(!$(this).hasClass('active')){
                    //点击的div1没有active
                    //去掉active并隐藏div2
                    $('.active').removeClass('active').find('.div2').hide();

                    //激活当前点击div1
                    $(this).addClass('active').find('.div2').show();
                };
            });
        }());
    </script>

写好了总要贴上来

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏