如何使用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')