Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jQuery/Javascript的For循环_Javascript_Jquery_For Loop - Fatal编程技术网

使用jQuery/Javascript的For循环

使用jQuery/Javascript的For循环,javascript,jquery,for-loop,Javascript,Jquery,For Loop,我用javascript/jquery创建了一个for循环,以便为每个名为“.choice”的div类分配一个随机数。总共有四个部门。当我运行以下代码时: for (var i = 0; i < 4; i++) { var random = Math.floor(Math.random() * 12); var chess = $(".choice"); chess.attr({ "data-random": random

我用javascript/jquery创建了一个for循环,以便为每个名为“.choice”的div类分配一个随机数。总共有四个部门。当我运行以下代码时:

   for (var i = 0; i < 4; i++) {

    var random = Math.floor(Math.random() * 12);
    var chess = $(".choice");
       chess.attr({
        "data-random": random
       });
       $(".choice").append(chess);
   }  
for(变量i=0;i<4;i++){
var random=Math.floor(Math.random()*12);
var chess=$(“.choice”);
国际象棋({
“数据随机”:随机
});
$(“.choice”).append(国际象棋);
}  
所有div返回相同的数字,而不是每个div。选择具有随机数


(这是网站上的第一个问题,希望这个问题有意义。提前谢谢。)

你用
var chess=$(“.choice”)瞄准了所有
div.choice
S。您应该将该行移到for循环之外,并仅将第n个div作为设置属性的目标。

发生这种情况是因为您将随机数分配给类,这将随机数分配给该类的每个对象。如果要将随机数记录到console.log中,您将看到每个div都以生成的最后一个随机数结束

相反,请尝试使用以下命令使用类对对象进行迭代:

$('.choice').each(function() {
    //Logic here.
});

在循环的每次迭代中,您都将相同的随机数分配给选择中的每个元素

这应该做到:

$(“.choice”).attr({
“数据随机”:()=>Math.floor(Math.random()*12)
});

1.
2.
3.

4当您使用 $(“.choice”);这将返回具有.choice类的所有元素的数组。当您添加属性时,它每次都会添加具有相同值的相同属性

它取最后一个随机值,该值是在最后一次迭代(即第4次迭代)中生成的

var chess = $(".choice");
for (var i = 0; i < 4; i++) {
    var random = Math.floor(Math.random() * 12);
    chess[i].attr({ "data-random": random });
}
var chess=$(“.choice”);
对于(变量i=0;i<4;i++){
var random=Math.floor(Math.random()*12);
国际象棋[i].attr({“数据随机”:random});
}
我运行这个循环直到问题中提到的第四个元素

如果要对与选项具有相同类名的所有元素运行此选项,则应按如下方式运行:-

var chess = $(".choice");
for (var i = 0; i < chess.length; i++) {
    var random = Math.floor(Math.random() * 12);
    chess[i].attr({ "data-random": random });
}
var chess=$(“.choice”);
for(变量i=0;i

这将为每个元素添加随机数,每个元素都有属性数据random的classname选项。

所以您想在其中循环元素。选择?或者你想在其中循环多项选择元素?也不清楚你为什么要再次附加这些元素…@Marcelo:也看到我的答案了吗