jquery js 不重复随机数

2025-12-17 21:29:59
推荐回答(4个)
回答1:

function bgcolor(){
var items = $('.listitems');
var arand = 5;
items.each(function () {  
var rand = getRandom(arand);
$(this).addClass("sbg" + rand);
arand = rand;
});  
}
function getRandom(arand) {
var rand = parseInt(4*Math.random());
if (rand == arand) {
return getRandom(arand);
} else {
return rand;
}
}
bgcolor();

 记得给分!!!

回答2:

function createRandomNumber_2(num,maxNum){
    if(!maxNum || !num){
        alert("请输入参数!");
        return false;
    }
    var flag = 0,
            i=0,
            arr=[];
    if(maxNum - num < 0){
        flag = maxNum;
        maxNum = num;
        num = flag;
    }
    for(;i        arr[i] = i-0+1;
    }

    arr.sort(function(p1,p2){
        return 0.5-Math.random();
    });
    //上面这段代码,就是该思想的核心。
    arr.length = num;
    return arr;
}

回答3:

不理解你的需求。看起来像是取得多个对象,对每个对象进行随机加CSS的类。

你说的输出数字要和上一次输出的不同,是指每个对象本身,还是指每个对象跟上一个对象不同?

//这个是对每个对象本身
function bgcolor(){
var items = $('.listitems');
var arand = 5;
items.each(function () {  
var rand = parseInt(4*Math.random());
var crclass ='';
while ($(this).hasClass("sbg" + rand))
{
crclass="sbg" + rand;
rand = parseInt(4*Math.random());
}
$(this).removeClass(crclass);
$(this).addClass("sbg" + rand);

});  
}
bgcolor();

回答4:

var arand = rand;

把var去掉;
还有把html代码复制下,方便测试