如何通过执行类似$(.class).random.click()
的操作在jQuery中返回随机元素?
因此,如果.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();
您可以编写自定义过滤器(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;
}
});
示例用法:
$('.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元素你有十个
我建议使用.eq()
和.trigger()
以jQuery方式进行。
$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();
randojs.com使它成为简单的单行代码:
rando($("a")).value[0].click()
“。value”之所以存在,是因为您还可以选择获取随机jQuery元素的索引。此处的[[0]]将jQuery元素变成普通的JavaScript元素。如果将以下内容添加到html文档的开头,那么您可以轻松地随机执行几乎任何您想做的事情。来自数组的随机值,随机jquery元素,对象的随机属性,甚至在需要时防止重复。
<script src="https://randojs.com/1.0.0.js"></script>