如何使用next()在jquery中查找最近的ul?

如何使用next()在jquery中查找最近的ul?,jquery,menu,slidetoggle,next,Jquery,Menu,Slidetoggle,Next,我有一个简单的菜单,如下所示: <ul id="navigation"> <li id="m_li"> <div><span>+</span><a href="#" >myself</a></div> <ul class="test" id="x_ul"> <li id="li">

我有一个简单的菜单,如下所示:

<ul id="navigation">
    <li id="m_li">
         <div><span>+</span><a href="#" >myself</a></div>
        <ul class="test" id="x_ul">
            <li id="li">
                <a href="#" >Pictures</a>
            </li>
            <li id="li">
                <a href="#" >Audio</a>
            </li>
        </ul>
    </li>
    <li id="profile_modeling_li">
        <div><span>+</span><a href="#" >friend</a></div>
        <ul class="test" id="y_ul">
            <li id="li">
                <a href="#" >Pictures</a>
            </li>
            <li id="li">
                <a href="#" >Video</a>
            </li>
        </ul>
    </li>
</ul>
问题是,
$(this.next('ul')
似乎不喜欢下一个ul

知道我做错了什么吗?

使用

$(this).parent().next()
而不是

$(this).next();
当然,您可以传递一个选择器(更简单或更复杂),将所需元素标识为参数:

$(this).parent().next('ul.test[id$="_ul]"'); 

.next/.prev
遍历兄弟姐妹,ul不是跨度的子级。您可能应该找到最近的
li
.test

 $(this).closest('li').find('ul.test')
皈依

$(this).next('ul')


你可以在这里看到,你可以使用
$(this)。find('ul')
不,你不能。
find
查找元素的子代,而在这种情况下,
ul
是元素父代的同级。
。next()
prev()
遍历同级,而不是子代。@AnthonyGrist aaw。。我指的是兄弟姐妹,但小时候写的。谢谢你指出这一点。
$(this).next('ul')
$(this).parent().next('ul')