#jquery
#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 может измениться в будущем.
Ответ №1:
Я бы, вероятно, использовал:
$('.ac_current_a').parent().next().children()
Демонстрация:jsfiddle.net/dL87J /
Ответ №2:
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);
Ответ №3:
Удалить eq()
:
$('.ac_list_a .ac_current_a').parent().next();
$('.ac_list_a .ac_current_a').parent().prev();
Комментарии:
1. Это возвращает пустой объект jQuery, поскольку у ссылки нет родственных файлов.