Cómo conseguir elemento aleatorio en jquery?

¿Cómo puedo devolver un elemento aleatorio en jQuery por hacer algo como $(.class).random.click()?

Por lo tanto, si .class tenía 10 enlaces, sería hacer clic al azar en uno de ellos.

Aquí es lo que yo hice:

var rand_num = Math.floor(Math.random()*$('.member_name_and_thumb_list a').size());
$(".member_name_and_thumb_list a").eq(rand_num).click();
  • usted puede agarrar a todos los elementos con regularidad un selector de jquery, $(‘.la clase’), en lugar de iterar a través de ellas usando .cada uno, sólo tienes que tomar una al azar . o usted podría crear una matriz de todas las clases, a continuación, generar un índice aleatorio (basado en el rango de la matriz). a continuación, ir $(‘.randomclass’).haga clic en().
  • desde jQuery 1.8 debemos utilizar la longitud de cambio de tamaño.
InformationsquelleAutor Josh | 2010-09-01

7 Kommentare

  1. 39
    var random = Math.floor(Math.random()*10);
    $(".someClass").eq(random).click();
    • En chrome se le sale: TypeError: Object #<Object> has no method 'Round' es var random = Math.round(Math.random()*10);
    • El Uso De Las Matemáticas.piso en lugar de Matemáticas.ronda para una distribución uniforme. El Uso De Las Matemáticas.ronda en este caso será a favor de 1 a 8 más de 0 y 9.
    • Recomiendo la sustitución de 10 con $(".someClass").length. De lo contrario, esto va a romper si el número de enlaces de cambios.
  2. 57

    Puede escribir un filtro personalizado (tomado de aquí):

    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;
        }
    });

    Ejemplo de uso:

    $('.class:random').click()

    Lo mismo, pero como un plugin lugar:

    jQuery.fn.random = function() {
        var randomIndex = Math.floor(Math.random() * this.length);  
        return jQuery(this[randomIndex]);
    };

    Ejemplo de uso:

    $('.class').random().click()
    • me da Uncaught TypeError: Cannot read property 'length' of undefined con jQuery 1.11.3
  3. 41

    Si usted no desea codificar el número de elementos para elegir, esto funciona:

    things = $('.class');
    $(things[Math.floor(Math.random()*things.length)]).click()
    • Esta es una gran respuesta… eficiente y de forma independiente con nada más que un único selector.
    • Es la segunda vez que vengo aquí. ¿Por qué no puedo nos upvote más?
  4. 9
    var rand = Math.floor(Math.random()*10);
    
    $('.class').eq(rand).click();

    Math.random() consigue un pseudo-aleatorio entre 0 y 1, por lo que multiplicando por 10 y redondeo hacia abajo te lleva de 0 a 9. .eq() es 0 indexados, por lo que de esta manera se consigue una al azar jQuery elemento de las 10 que tiene.

  5. 2

    Te sugiero hacerlo de jQuery forma, el uso de .eq() y .trigger().

    $elements.eq(Math.floor(Math.random() * $elements.length)).trigger('click');
  6. 1

    Puede seleccionar al azar elemento por el nombre de la clase utilizando el método jquery eq()

    vea el ejemplo de abajo.

    var len = $(".class").length
    var random = Math.floor( Math.random() * len ) + 1;
    $(".class").eq(random).click();
  7. 0

    randojs.com hace de esta una simple línea:

    rando($("a")).value[0].click()

    El «.valor» está ahí porque usted también tiene la opción de obtener el índice del azar jQuery elemento. El «[0]» es la que hay a la vuelta de jQuery elemento en una llanura elemento JavaScript. Si usted agregue lo siguiente a la cabeza de tu documento html, usted puede hacer casi lo que quiera con la aleatoriedad fácilmente. Valores aleatorios a partir de matrices aleatorias jquery elementos, al azar de propiedades de los objetos, e incluso la prevención de repeticiones, si es necesario.

    <script src="https://randojs.com/1.0.0.js"></script>

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea