Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在jquery中获取随机元素?_Javascript_Jquery - Fatal编程技术网

Javascript 如何在jquery中获取随机元素?

Javascript 如何在jquery中获取随机元素?,javascript,jquery,Javascript,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(); Math.random会得到一个介于0和1之间

如何在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();

Math.random会得到一个介于0和1之间的伪随机数,因此将其乘以10并向下取整会得到0到9。eq是0索引的,因此这将从现有的10个jQuery元素中获得一个随机jQuery元素

您可以编写自定义筛选器:

var n_elements = $(".someClass").length;
var random = Math.floor(Math.random()*n_elements);
$(".someClass").eq(random).click();
用法示例:

$('.class:random').click()
$('.class').random().click()
同样的事情,但作为插件:

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

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

如果您不想硬编码可供选择的元素数,则可以这样做:

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

我建议用jQuery的方式使用.eq和.trigger


您可以使用jquery方法eq按类名选择随机项

参见下面的示例

var len = $(".class").length
var random = Math.floor( Math.random() * len ) + 1;
$(".class").eq(random).click();
使其成为一个简单的单行程序:

rando($("a")).value[0].click()
之所以有.value,是因为您还可以选择获取随机jQuery元素的索引。[0]用于将jQuery元素转换为普通JavaScript元素。如果您将以下内容添加到html文档的头部,您可以轻松地使用随机性执行任何操作。数组的随机值、随机jquery元素、对象的随机属性,甚至在需要时防止重复

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

您可以使用一个常规的jquery选择器$'.class'获取所有元素,然后不用使用.each遍历它们,只需获取一个随机元素即可。或者您可以创建一个包含所有类的数组,然后根据数组的范围生成一个随机索引。然后转到$'.randomclass'。单击。由于jQuery 1.8,我们应该使用长度而不是大小。在chrome上,它弹出:TypeError:Object没有方法“Round”,它是var random=Math.roundMath.random*10;使用Math.floor而不是Math.round可获得均匀分布。在本例中使用Math.round将有利于1到8,而不是0和9。我建议将10替换为$.someClass.length。否则,如果链接数量发生变化,这将中断。这是一个很好的答案。。。高效且独立,只需一个选择器。这是我第二次来这里。为什么我们不能更多地向上投票?给了我未捕获的TypeError:无法用jQuery 1.11.3读取未定义的属性'length'
<script src="https://randojs.com/1.0.0.js"></script>