Filtro :random con jQuery

0 - , , - 09/01/2009 08:56:52

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 » »

Deja tu comentario

  • El comentario debe estar relacionado con el contenido de la entrada.
  • Comentarios ofensivos, con spam o con lenguaje inapropiado serán eliminados.

captcha