Ответ 1
var random = Math.floor(Math.random()*10);
$(".someClass").eq(random).click();
Как вернуть случайный элемент в 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();
var random = Math.floor(Math.random()*10);
$(".someClass").eq(random).click();
Вы можете написать собственный фильтр (взятый отсюда):
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()
Если вы не хотите жестко кодировать количество элементов на выбор, это работает:
things = $('.class');
$(things[Math.floor(Math.random()*things.length)]).click()
var rand = Math.floor(Math.random()*10);
$('.class').eq(rand).click();
Math.random()
получает псевдослучайное число от 0 до 1, поэтому умножая его на 10 и округляя его, вы получаете от 0 до 9. .eq()
индексируется 0, поэтому это приведет к выходу случайного элемента jQuery из 10 у вас есть.
Я бы предложил сделать это способом jQuery, используя .eq()
и .trigger()
.
$elements.eq(Math.floor(Math.random() * $elements.length)).trigger('click');
Вы можете выбрать случайный элемент по имени класса, используя метод jquery eq()
см. пример ниже.
var len = $(".class").length
var random = Math.floor( Math.random() * len ) + 1;
$(".class").eq(random).click();