eq()方法问题

时间:2011-06-08 16:17:34

标签: jquery

例如,我有这个HTML结构:

<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_list_a获取下一个或上一个ac_current_a

我试过这样做:

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

但它不起作用。

你会如何解决它?

更新

当然,我可以通过为所有li元素分配类,然后使用

以愚蠢的方式做到这一点。
parents(class).next().find(a.class)

但是有可能以更动态的方式做到这一点吗?因为HTML的结构将来可能会改变。

3 个答案:

答案 0 :(得分:4)

我可能会使用:

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

演示:jsfiddle.net/dL87J/

答案 1 :(得分:0)

删除eq()

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

答案 2 :(得分: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);