Javascript 只给id赋值一次

Javascript 只给id赋值一次,javascript,jquery,random,Javascript,Jquery,Random,我有一个困扰我一段时间的问题 我有14个div,每个div必须在每次加载页面时分配一个随机ID(介于1和14之间)。 每个div都有“.image box”类,我试图分配的ID格式是“box14” 我有JS代码来分配随机ID,但我很难获得相同的ID来分配两次 JavaScript var used_id = new Array(); $( document ).ready(function() { assign_id(); function assig

我有一个困扰我一段时间的问题

我有14个div,每个div必须在每次加载页面时分配一个随机ID(介于1和14之间)。 每个div都有“.image box”类,我试图分配的ID格式是“box14”

我有JS代码来分配随机ID,但我很难获得相同的ID来分配两次

JavaScript

var used_id = new Array();

    $( document ).ready(function() {
        assign_id();

        function assign_id()
        {
            $('.image-box').each(function (i, obj) {
                random_number();
                function random_number(){
                number = 2 + Math.floor(Math.random() * 14);
                var box_id = 'box' + number;

                if((box_id.indexOf(used_id) !== -1) === -1)
                    {
                        $(this).attr('id',box_id);
                        used_id.push(box_id);
                    }


                else
                    {
                    random_number();
                    }   
                }
            });

        }

    });
谢谢你的帮助


干杯

我建议为用户id设置一个类似于u的全局数组,并将分配的div id推送到数组中。然后,您可以在将随机id分配给div之前进行检查。如果分配了随机id,请使用不同的id

希望这有帮助


干杯。

我建议为用户id设置一个全局数组,并将分配的div id推送到数组中。然后,您可以在将随机id分配给div之前进行检查。如果分配了随机id,请使用不同的id

希望这有帮助

干杯。

在分配ID时,只需使用增量更新的计数器,而不是使用随机生成的数字(根据您的经验,可能会随机重复值)

function assign_id() {
    var counter = 0;
    $('.image-box').each(function (i, obj) {
       $(this).attr('id','image-box-' + counter++); }   
    });
}

在分配ID时,只需使用增量更新的计数器,而不是使用随机生成的数字(根据您的经验,可能会随机重复值)

function assign_id() {
    var counter = 0;
    $('.image-box').each(function (i, obj) {
       $(this).attr('id','image-box-' + counter++); }   
    });
}

我想这就是你想要的

$(文档).ready(函数(){
分配_id();
});
函数赋值_id(){
var numberOfDiv=$('.image-box').length;
var listOfRandomNumber=myFunction(numberOfDiv);
$('.image box')。每个(函数(i,obj){
$(this.attr(“id”,listOfRandomNumber[i]);
});
};
//获取编号的列表包含1到
//14在这种情况下。
函数myFunction(numberOfDiv){
对于(var i=1,ar=[];i
我想这就是你想要的

$(文档).ready(函数(){
分配_id();
});
函数赋值_id(){
var numberOfDiv=$('.image-box').length;
var listOfRandomNumber=myFunction(numberOfDiv);
$('.image box')。每个(函数(i,obj){
$(this.attr(“id”,listOfRandomNumber[i]);
});
};
//获取编号的列表包含1到
//14在这种情况下。
函数myFunction(numberOfDiv){
对于(var i=1,ar=[];i
如果您只想指定唯一的值,最好使用增量值(或类似于(new Date).getTime())的值。但是,如果出于某种原因,您必须随机选择值(仅从1-14中),则使用类似的方法来选择唯一/随机值

var arrayId = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14];

function getRandomId(array) {
    var randomIndex = Math.floor(Math.random() * (array.length));
    var randomId = array.splice(randomIndex, 1);
    return randomId[0];
}

现在
getRandomId(arrayId)
将从数组中返回一个随机选取的值,然后删除该值,这样就不会重复该值。

如果您只想指定唯一的值,最好使用增量值(或类似于(new Date).getTime()。但是,如果出于某种原因,您必须随机选择值(仅从1-14中),则使用类似的方法来选择唯一/随机值

var arrayId = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14];

function getRandomId(array) {
    var randomIndex = Math.floor(Math.random() * (array.length));
    var randomId = array.splice(randomIndex, 1);
    return randomId[0];
}

现在
getRandomId(arrayId)
将从数组中返回一个随机选取的值,然后删除该值,这样就不会重复该值。

首先介绍如何使用我的实现:

var takeOne = makeDiminishingChoice(14);
在这种情况下,
takeOne
是一个函数,您最多可以调用14次,以获得1到14之间的唯一随机数

例如,这将以随机顺序输出介于1和14之间的数字:

for (var i = 0; i < 14; i++) {
        console.log(takeOne());
}

首先,您将如何使用我的实现:

var takeOne = makeDiminishingChoice(14);
在这种情况下,
takeOne
是一个函数,您最多可以调用14次,以获得1到14之间的唯一随机数

例如,这将以随机顺序输出介于1和14之间的数字:

for (var i = 0; i < 14; i++) {
        console.log(takeOne());
}

它必须是随机的吗?
assign_id()
assign一个递增的值吗?为什么要这样分配id?它必须是随机的吗?
assign_id()
可以分配递增的值吗?为什么要这样分配id