2011-06-08 70 views
0

例如,我有這樣的HTML結構:EQ()方法的問題

<ul> 
    <li><a class="ac_list_a">some text</a></li> 
    <li><a class="ac_list_a">some text</a></li> 
    <li><a class="ac_list_a">some text</a></li> 
    <li><a class="ac_list_a ac_current_a">some text</a></li> 
    <li><a class="ac_list_a">some text</a></li> 
    <li><a class="ac_list_a">some text</a></li> 
</ul> 

我需要從ac_current_a獲得下一首或上ac_list_a

我試圖這樣做:

var all_a = $('.ac_list_a,.ac_current_a').eq('.ac_current_a').next(); 

但它不工作。

你會如何解決它?

更新

那是當然的,我可以做到這一點的啞方式,通過分配類的所有li elemnts,然後使用

parents(class).next().find(a.class) 

但有可能做到這一點更加動感辦法?因爲HTML的結構將來可能會發生變化。

回答

0

eq取整數指數函數,而不是一個選擇。您可以使用index函數查找該索引,然後使用eq

var index = $('.ac_list_a,.ac_current_a').index($('.ac_current_a')); 
var all_a = $('.ac_list_a,.ac_current_a').eq(index+1); 
4

我可能會使用:

$('.ac_current_a').parent().next().children() 

演示:jsfiddle.net/dL87J/

+0

+1我沒有注意到它們是嵌套的。 – user113716 2011-06-08 16:24:13

+0

+1 @patrick我既不...... – lonesomeday 2011-06-08 16:27:39

0

刪除eq()

$('.ac_list_a .ac_current_a').parent().next(); 
$('.ac_list_a .ac_current_a').parent().prev(); 
+0

返回空的jQuery對象,因爲鏈接沒有任何兄弟。 – Guffa 2011-06-08 16:26:28

+0

@Guffa你是對的,我沒有注意到 – 2011-06-08 16:30:33