How can I return a random element in jQuery by doing something like $(.class).random.click()
?
So, if .class
had 10 links, it would randomly click one of them.
Here is what I did:
var rand_num = Math.floor(Math.random()*$('.member_name_and_thumb_list a').size()); $(".member_name_and_thumb_list a").eq(rand_num).click();
You can write a custom filter (taken from here):
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; } });
Example usage:
$('.class:random').click()
The same thing but as a plugin instead:
jQuery.fn.random = function() { var randomIndex = Math.floor(Math.random() * this.length); return jQuery(this[randomIndex]); };
Example usage:
$('.class').random().click()
If you don't want to hard code the number of elements to choose from, this works:
things = $('.class'); $(things[Math.floor(Math.random()*things.length)]).click()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With