Как осуществить циклический перебор элементов в рамках Javascript/jQuery?
Есть фиксированная группа элементов SPAN. При некоем действии (допустим, клике) нужно выбрать какой-либо из элементов и сделать его «текущим». При очередном клике «текущим» должен стать следующий SPAN. По достижении «конца» этой группы текущим должен стать первый элемент.
То есть при каждом клике выбирается «текущий» элемент и это происходит по кругу.
В голову лезет только кривой говнокод. Предложите, пожалуйста, органичное, на ваш взгляд, решение.
var next = $('span.selected').next();
$('span.selected').removeClass('selected');
next = ( next.length ) ? next : $(firstElem);
next.setClass('selected');
Пример 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')
}