2010-02-18 48 views
2

這可能會很棘手。jQuery發現李與類直到

PHP將產生:

<li>element</li> 
<li>element</li> 
<li class="alt">element</li> 
<li class="alt">element</li> 
<li class="alt">element</li> 
<li>element</li> 
<li>element</li> 
<li class="alt">element</li> 
<li class="alt">element</li> 
<li class="alt">element</li> 
<li>element</li> 

我需要的是找到與.ALT類li元素,直到li元素開始的方式。 所以......

<li>element</li> 
<li>element</li> // if I click on this one, it will select 
<li class="alt">element</li> // this one 
<li class="alt">element</li> // and this one 
<li class="alt">element</li> // and this one 
<li>element</li> // stops selecting here 
<li>element</li> 
<li class="alt">element</li> // doe not this one 
<li class="alt">element</li> // or this one 
<li class="alt">element</li> // or any other .alt 
<li>element</li> 

我試着用.find這樣做(),但我不能找到一種方法來劃分.ALT元素分組和隔離的第一個。

任何糠s有一個好主意?

回答

5

如果您使用jQuery 1.4,您可以使用新的nextUntil方法。

http://api.jquery.com/nextUntil/

編輯 - 例如:

$("li").click(function() { 

    $(this).nextUntil("li[class='']").each(function() {   
    console.log($(this));   
    }); 

}); 
+0

我剛剛看了一下這個的一天。我和我的記憶,非常感謝你的隊友。 – daulex 2010-02-18 16:54:32

+0

+1獲取1.4採用推 – 2010-02-18 20:21:08

+0

@daulex - 沒問題 @mark - 是的,這種方法是相當方便的。我可以想到很多我以前可以使用它的情況。我也喜歡更直觀的.index()用法。 – ScottE 2010-02-18 22:30:49

0

嘗試(夫婦的編輯,但認爲我有它)

$( '李:包含(元素)')點擊()找到(「禮:。包含(元素):沒有[ALT]:第一 ')prevAll(' li.alt');

0

難道你不能添加一個額外的類爲lis將要檢索嗎?