【发布时间】:2013-09-02 10:04:40
【问题描述】:
如果$('.my-element') 匹配多个元素,有没有一种快速的方法可以从中获取随机元素?
【问题讨论】:
-
是的,就像从数组中获取随机值一样。
如果$('.my-element') 匹配多个元素,有没有一种快速的方法可以从中获取随机元素?
【问题讨论】:
$.fn.random = function() {
return this.eq(Math.floor(Math.random() * this.length));
}
$(selector).random();
【讨论】:
floor() 进行四舍五入,您的答案往往(我认为)总是返回第一个元素。只有我吗?
要获得均匀分布,您可以将随机数乘以数组计数并使用按位运算符删除小数。
var arr = ['a','b','c'];
arr[~~(Math.random() * arr.length)]; //even odds of a, b, or c
【讨论】:
var numElements = $('.my-element').length;
var randomNum = Math.floor(Math.random()*numElements);
//Select your random element
$('.my-element:nth-child(' + randomNum + ')');
【讨论】: