2014-02-28 125 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

是的!謝謝! –