jquery如何选取除当前元素的其他非同辈元素(类名相同)

clipboard.png

我就是想实现点击当前图标出来菜单,但是其他的菜单隐藏(未实现),再次点击图标当前菜单隐藏(已实现)

clipboard.png

下面我这么写没用。。
clipboard.png

阅读 11.4k
3 个回答

按照你需要的功能写了个简单的例子

HTML

<ul class="menu">
   <li>
        1
        <div>我是 菜单1 的子菜单</div>
   </li>
   <li>
        2
        <div>我是 菜单2 的子菜单</div>
   </li>
   <li>
        3
        <div>我是 菜单3 的子菜单</div>
   </li>
</ul>

CSS

.menu{width: 300px;margin: 100px auto;cursor: pointer;}
.menu li{font-size: 25px;width: 50px;height: 50px;line-height: 50px;text-align: center;border: 1px solid;position: relative}
.menu li div{width: 200px;height: 50px;border: 1px solid; font-size: 14px;position: absolute;left: 51px;top: -1px;display: none}

JS

var li = $('.menu li');
    li.click(function(){
        var n = li.index($(this));
        $('.menu li:not(:eq('+n+'))').find('div').hide();
        $(this).find('div').toggle();
    });

不知道是不是想要这样子

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
    </head>
    <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
    <style type="text/css">
        dl{position: fixed;top: 50px;}
        dt{border: solid 1px red;position: relative;}
        ul{list-style: none;border: solid 1px blue;padding: 0;margin: 0;}
        ul li{text-align: center;}
        .lists{display: none;position: absolute;width: 80px;right: -80px;top: 0;}
    </style>
    <body>
        <dl>
            <dt>
                <span>按钮A</span>
                <div class="lists">
                    <ul>
                        <li>A项目1</li>
                        <li>A项目2</li>
                        <li>A项目3</li>
                    </ul>
                </div>
            </dt>
            <dt>
                <span>按钮B</span>
                <div class="lists">
                    <ul>
                        <li>B项目1</li>
                        <li>B项目2</li>
                        <li>B项目3</li>
                    </ul>
                </div>
            </dt>
            <dt>
                <span>按钮C</span>
                <div class="lists">
                    <ul>
                        <li>C项目1</li>
                        <li>C项目2</li>
                        <li>C项目3</li>
                    </ul>
                </div>
            </dt>
        </dl>
        <script type="text/javascript">
            $("dl").on("click","dt span",function(){
                var list=$(this).parent().find(".lists"),
                    allLists=$(".lists").not(list);
                //先把所有的菜单关了,在打开或关闭对应的菜单
                allLists.hide();
                list.toggle();
            });
        </script>
    </body>
</html>
var _thisP=$(this).parents(".parent").find("菜单class");
$("菜单class").not(_thisP).hide();
_thisP.toggle();
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏