例如,我有这样的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();