2013-04-19 32 views
0
<ul> 
    <li>list item 1</li> 
    <li>list item 2</li> 
    <li class="block">list item 3</li> 
    <li>list item 4</li> 
    <li>list item 5</li> 
    <li class="block">list item 6</li> 
    <li>list item 7</li> 
    <li>list item 8</li> 
</ul> 

你會如何收集項目4和5只jQuery的.nextAll()子集過濾

當然$('li.block').nextAll()返回項目4雖然8,其中包括6

我想知道什麼是應該做的最佳方式。 li's上帶有過濾功能的一些醜陋$.each()循環聽起來令人沮喪地變得複雜。我希望只有選擇者的方式......並失敗至今。

+0

您要選擇的第一個'.block'和未來之間的元素'.block'? – alex

回答

4

nextUntil()可能是你在追求什麼。

$('li.block').first().nextUntil('.block'); 

jsFiddle

+0

啊。這就是我喜歡SO的原因。謝謝! – tim

1

我做一個假設,但這個工程:

$('li.block') 
    .first() 
    .nextUntil(".block") 
    .css("background-color","yellow") 

DEMO:http://jsfiddle.net/gvwwy/2/

+0

這是否也返回項目7和8? OP要求只有項目4和5. – Zhihao

+0

糟糕,對不起,你是對的。我誤解了他想要的部分!編輯答案... –

+0

不能接受多個答案,但我想至少我可以+1這個 – tim