Jquery:仅显示子LI设置为class=active的UL

Jquery:仅显示子LI设置为class=active的UL,jquery,html-lists,accordion,submenu,Jquery,Html Lists,Accordion,Submenu,我有这样的菜单结构: <ul id="accordion"> <li><a href="#">Books</a> <ul> <li><a href="thrillers.html">Thrillers</a></li> <li><a href="scifi.html">Sci-fi</a></li> <li

我有这样的菜单结构:

<ul id="accordion">
 <li><a href="#">Books</a>
  <ul>
    <li><a href="thrillers.html">Thrillers</a></li>
    <li><a href="scifi.html">Sci-fi</a></li>
    <li><a href="nf.html">Non-fiction</a></li>
  </ul>
 </li>
 <li><a href="#">Games</a>
  <ul>
    <li><a href="rpg.html">RPG</a></li>
    <li><a href="sim.html">Simulations</a></li>
    <li><a href="action.html">Action</a></li>
  </ul>
 </li>
</ul>
(等等)

现在,我们点击“RPG”,我想在RPG页面上打开游戏子菜单。因此,我决定向选定的LI添加一个类:

...
<ul>
  <li class="active"><a href="rpg.html">RPG</a></li>
  <li><a href="sim.html">Simulations</a></li>
  <li><a href="action.html">Action</a></li>
</ul>
...
。。。
...
现在,我要做的是让jQuery找到带有class=“active”的UL,然后打开该UL

我只是想问一下这个jQuery:

<script>

$(document).ready(function () {

    //hide all submenu's onLoad
    $('#accordion li').children('ul').slideUp('fast');  

    $('#accordion a.item').click(function () {

        /* FIRST SECTION */

        //slideup or hide all the Submenu
        $('#accordion li').children('ul').slideUp('fast');  

        //remove all the "Over" class, so that the arrow reset to default
        $('#accordion a.item').each(function () {
            if ($(this).attr('rel')!='') {
                $(this).removeClass($(this).attr('rel') + 'Over');  
            }
        });

        /* SECOND SECTION */        

        //show the selected submenu
        $(this).siblings('ul').slideDown('fast');

        //add "Over" class, so that the arrow pointing down
        $(this).addClass($(this).attr('rel') + 'Over');         

        return false;

    });

});

</script>

$(文档).ready(函数(){
//隐藏所有子菜单的加载
$('手风琴李')。儿童('ul')。幻灯片('fast');
$(“#手风琴a.item”)。单击(函数(){
/*第一节*/
//滑动或隐藏所有子菜单
$('手风琴李')。儿童('ul')。幻灯片('fast');
//删除所有“Over”类,使箭头重置为默认值
$('#手风琴a.item')。每个(函数(){
如果($(this.attr('rel')!=“”){
$(this.removeClass($(this.attr('rel')+'Over');
}
});
/*第二节*/
//显示所选子菜单
$(this).兄弟姐妹('ul').slideDown('fast');
//添加“Over”类,使箭头指向下方
$(this.addClass($(this.attr('rel')+'Over');
返回false;
});
});
在加载部件之后,我需要什么才能只打开我想要打开的部件?

这可能会有帮助:

$('#accordion > li > ul > li.active').parent().slideDown('fast');
这可能有助于:

$('#accordion > li > ul > li.active').parent().slideDown('fast');

尝试获取直接子级
>
活动li:

$(document).ready(function () {
    $('#accordion li').children('ul').slideUp('fast'); //<--hide all child uls
    $('#accordion > li').click(function () { ///<---perform a click event on li
        $(this).addClass('active').siblings('li').removeClass('active'); //<--add active class to the clicked element and remove from other siblings li
        $(this).siblings('li').find('ul').slideUp('fast'); // <---find the ul in the siblings and slide those up
        $('> ul', this).slideDown('fast'); // <--then perform the slideDown
    });
});
$(文档).ready(函数(){

$(“#accordion li”)。children('ul')。slideUp('fast');//尝试获取直接子级
活动li:

$(document).ready(function () {
    $('#accordion li').children('ul').slideUp('fast'); //<--hide all child uls
    $('#accordion > li').click(function () { ///<---perform a click event on li
        $(this).addClass('active').siblings('li').removeClass('active'); //<--add active class to the clicked element and remove from other siblings li
        $(this).siblings('li').find('ul').slideUp('fast'); // <---find the ul in the siblings and slide those up
        $('> ul', this).slideDown('fast'); // <--then perform the slideDown
    });
});
$(文档).ready(函数(){

$(“#手风琴李”).children('ul').slideUp('fast');//太棒了,谢谢。看起来很简单,但我没有使用>字符。所以,这就是我没有成功的原因。再次感谢。太棒了,谢谢。看起来很简单,但我没有使用>字符。所以,这就是我没有成功的原因。再次感谢。