Puedes hacerlo así:
Código Javascript
:
Ver originalvar actual, siguiente, i = 0,
spans = $("#uno").find("span"),
total = spans.length;
setInterval(function(){
actual = $(".aqui");
if (i == total - 1){
siguiente = spans.first();
i = 0;
}
else{
siguiente = actual.next();
i++;
}
actual.removeClass("aqui");
siguiente.addClass("aqui");
}, 5000);
Declaro dos variables en las que almacenaré al elemento actual en la secuencia (el que posee la clase) y al que le sigue, además de una variable que usaré como contador para saber en qué número de elemento vamos, el total de elementos
<span>
contenidos en el elemento de
id
'uno' y el total que estos representan.
En el temporizador, ejecuto una función cada cinco segundos, en la cual tomo al elemento que posee la clase 'aqui' y lo asigno a
actual
, luego, verifico el valor del contador; si este es igual al total de elementos
<span>
menos 1, es decir, si es el último de ellos (recordando siempre que, en una lista de nodos, así como en los arrays y cadenas, la primera posición es cero), el elemento que asignaremos a
siguiente
será el primero de los
<span>
, además de reiniciar el valor del contador en cero, pero si todavía no hemos llegado al final, el elemento a asignar a
siguiente
será el que continúa después del elemento asignado a
actual
, además, sumamos 1 al contador para seguir avanzando en la secuencia.
Finalmente, retiro la clase al elemento actual y se la asigno al siguiente.
DEMO
Saludos