Filtro :random con jQuery

0 COMENTARIOS -  Publicado hace 14 meses -  Clasificado en: , ,

En el blog de Waldek Mastykarz se nos muestra como obtener un item de manera aleatoria con jQuery, partiendo de la siguiente solución.

jQuery.jQueryRandom = 0;
jQuery.extend(jQuery.expr[":"], {
random: function(a, i, m, r) {
if (i == 0) {
jQuery.jQueryRandom = Math.floor(Math.random() * r.length);
};
return i == jQuery.jQueryRandom;
}
});

Un ejemplo de la utilización del filtro :random sobre los elementos de una lista sería:

<ul>
<li>item 1</a></li>
<li>item 2 </a></li>
<li>item 3 </a></li>
<li>item 4</a></li>
<li>item 5</a></li>
</ul>
<script type="text/javascript">
$().ready(function() {
alert($("li:random").text());
});
</script>

Ver ejemplo en funcionamiento » »

Una aplicación, practicamente inmediata y muy sencilla del filtro, podría ser la de mostrar un texto aleatorio cada vez que se accede a la web.

Para ello, en vez de actuar sobre todos los elementos <li> de nuestra página sólo actuaremos sobre los que tengan la clase "cita_aleatoria". De este modo evitaremos actuar sobre elementos que no deseamos. El código sería similar al siguiente:

<ul>
<li class="cita_aleatoria">cita 1</a></li>
<li class="cita_aleatoria">cita 2 </a></li>
<li class="cita_aleatoria">cita 3 </a></li>
<li class="cita_aleatoria">cita 4</a></li>
<li class="cita_aleatoria">cita 5</a></li>
</ul>
<script type="text/javascript">
$().ready(function() {
//Ocultamos todas las citas
$("li.cita_aleatoria").hide(); //Mostramos una de manera aleatoria
$("li.cita_aleatoria:random").show();
});
</script>

Ver ejemplo 2 en funcionamiento » »

Algunas entradas relacionadas:

También te puede interesar:

Haz un comentario

¡Gracias por dejar tu opinión! Por favor procura que tu comentarios sean apropiados respecto al tema tratado en la entrada; que no sean spam, u ofensivos, de otro modo, serán eliminados. Todos los comentarios serán moderados antes de su publicación por lo que su aparición en la web puede verse aplazada un cierto tiempo. Si deseas realizar algún comentario, crítica o sugerencia sobre la propia web puedes hacer a través de la siguiente dirección de correo: webintenta@webintenta.com