11

如果$('.my-element')匹配多个元素,是否有一种快速的方法可以从中获取随机元素?

4

3 回答 3

31
$.fn.random = function() {
  return this.eq(Math.floor(Math.random() * this.length));
}          

$(selector).random();
于 2013-08-29T20:08:58.747 回答
2

要获得均匀分布,您可以将随机数乘以数组计数并使用按位运算符删除小数。

var arr = ['a','b','c'];
arr[~~(Math.random() * arr.length)]; //even odds of a, b, or c
于 2015-02-14T00:03:42.527 回答
1
var numElements = $('.my-element').length;
var randomNum = Math.floor(Math.random()*numElements);
//Select your random element
$('.my-element:nth-child(' + randomNum + ')');
于 2013-08-29T20:13:08.000 回答