eq()方法问题



例如,我有这样的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_current_a获得下一个或上一个ac_list_a

我试过这样做:

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

但它不起作用。

你将如何解决它?

更新

也就是说,我当然可以用一种愚蠢的方法,通过将类分配给所有li元素,然后使用

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

但有可能以更动态的方式来做吗?因为HTML的结构在未来可能会发生变化。

我可能会使用:

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

演示:jsfiddle.net/dL87J/

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);

删除eq():

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

最新更新