在以下示例中,此脚本以稳定的速率随机地将“green”类应用于所有“span”HTML 元素。
var items = $('span').get();
var interval = setInterval(function() {
var random_number = Math.floor(Math.random() * items.length);
$(items[random_number]).addClass('green');
items.splice(random_number, 1);
if (items.length === 0) {
clearInterval(interval);
}
}, 10);
我已经对其进行了更新,使其每个间隔更改 2 个元素,只需调用该函数两次即可。
var items = $('span').get();
var interval = setInterval(function() {
function rand(random_number) {
var random_number = Math.floor(Math.random() * items.length);
$(items[random_number]).addClass('green');
items.splice(random_number, 1);
}
rand(1);
rand(2);
if (items.length === 0) {
clearInterval(interval);
}
}, 500);
我只想知道,有没有办法让这个脚本同时随机将所有元素变为绿色,而不管有多少元素?
例如,http://jsfiddle.net/DUbQB/3/以十个间隔完成,因为有二十个元素并且随机函数被调用了两次。
但如果有 40 个元素,脚本将需要 20 个间隔,因此长度会增加一倍。不管有多少元素,这个脚本怎么能总是花费相同的时间来完成?