Как осуществить циклический перебор элементов в рамках Javascript/jQuery?

Есть фиксированная группа элементов SPAN. При некоем действии (допустим, клике) нужно выбрать какой-либо из элементов и сделать его «текущим». При очередном клике «текущим» должен стать следующий SPAN. По достижении «конца» этой группы текущим должен стать первый элемент.



То есть при каждом клике выбирается «текущий» элемент и это происходит по кругу.



В голову лезет только кривой говнокод. Предложите, пожалуйста, органичное, на ваш взгляд, решение.



Заранее благодарен.
  • Вопрос задан
  • 3801 просмотр
Решения вопроса 1
Может как то так: пример?
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
taliban
@taliban
php программист
var next = $('span.selected').next();
$('span.selected').removeClass('selected');
next = ( next.length ) ? next : $(firstElem);
next.setClass('selected');

Или я что-то не так понял?
Ответ написан
Комментировать
@ChemAli Автор вопроса
Спасибо, господа! Пора мне закрывать рабочую неделю.
Плюсанул обоим,
Ответ написан
Jman
@Jman
Frontend Developer
Пример taliban подходит если у спанов общий родитель.
Мой вариант — перебор обьекта jQuery. (выбрали все элементы с нужным классом и функцией setnext выбираем элементы по кругу)
var elements = $('span'),
setnext = function(){
var selected = elements.filter('.selected').removeClass('selected'),
index = elements.index(selected);
index = (++index == elements.length)? 0 : index ;
elements.index(index).setClass('selected')
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы