Подтвердить что ты не робот

Как получить случайный элемент в jquery?

Как вернуть случайный элемент в jQuery, выполнив что-то вроде $(.class).random.click()?

Итак, если .class имеет 10 ссылок, он случайно щелкнул бы один из них.

Вот что я сделал:

var rand_num = Math.floor(Math.random()*$('.member_name_and_thumb_list a').size());
$(".member_name_and_thumb_list a").eq(rand_num).click();
4b9b3361

Ответ 1

var random = Math.floor(Math.random()*10);
$(".someClass").eq(random).click();

Ответ 2

Вы можете написать собственный фильтр (взятый отсюда):

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

Пример использования:

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

То же самое, что и плагин:

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

Пример использования:

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

Ответ 3

Если вы не хотите жестко кодировать количество элементов на выбор, это работает:

things = $('.class');
$(things[Math.floor(Math.random()*things.length)]).click()

Ответ 4

var rand = Math.floor(Math.random()*10);

$('.class').eq(rand).click();

Math.random() получает псевдослучайное число от 0 до 1, поэтому умножая его на 10 и округляя его, вы получаете от 0 до 9. .eq() индексируется 0, поэтому это приведет к выходу случайного элемента jQuery из 10 у вас есть.

Ответ 5

Я бы предложил сделать это способом jQuery, используя .eq() и .trigger().

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

Ответ 6

Вы можете выбрать случайный элемент по имени класса, используя метод jquery eq()

см. пример ниже.

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