2014-02-28 123 views
0

鉴于元素此列表:使用jQuery选择相邻兄弟元素匹配类点击的元素

<ul id="menu3"> 
    <li>DELI MEATS</li> 
    <li class="subhead">Ham</li> 
    <li class="sub">Cooked Ham</li> 
    <li class="sub">Pepper Ham</li> 
    <li class="sub">Tavern Ham</li> 
    <li class="sub">Italian Brand Ham</li> 
    <li class="subhead">Roast Beef</li> 
    <li class="sub">Roast Beef</li> 
    <li class="sub">Italian Style Roast Beef</li> 
    <li>Turkey</li> 
    <li>Italian</li> 
    <li class="subhead">Bologna</li> 
    <li class="sub">Deli Bologna</li> 
    <li class="sub">Garlic Bologna</li> 
    <li>Liverwurst</li> 
    <li>Pepperoni</li> 
    <li>Pastrami</li> 
    <li>Corned Beef</li> 
</ul> 

当第二LI元素被点击(“火腿”),我想用jQuery的LI元素选择在class =“sub”的点击元素之后,但只会往下(并且包括)意大利品牌Ham。即,我希望它停止(不包括)烤牛肉,因为它没有class =“sub”。

$('#menu3 li').on('click', function(){ 
// Get LI element with class="sub" directly following the clicked element. 
}); 

这可能吗?谢谢!

+1

,但如果您点击DELI MEATS或Deli Bologna应该发生什么 –

+0

听起来像是应该使用嵌套列表或定义列表。但在此期间:http://api.jquery.com/nextUntil/ – Blazemonger

+1

所有列表项目是否应该在点击时绑定,还是仅在小标题类别绑定? – j08691

回答

0

我认为你正在寻找nextUntil()

http://jsfiddle.net/NXwB5/

$(this).nextUntil('.subhead'); 

或者,也许(只能选择.sub元素:

$(this).nextUntil('.subhead', '.sub') 

虽然有一些优势情况下,你的天堂”定义这可能会改变确切的答案。

+0

是的!谢谢! –