Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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
Javascript 从数组中生成每个具有随机类的div_Javascript_Jquery_Html - Fatal编程技术网

Javascript 从数组中生成每个具有随机类的div

Javascript 从数组中生成每个具有随机类的div,javascript,jquery,html,Javascript,Jquery,Html,我很难理解为什么下面的函数没有达到它应该达到的效果: function example() { var $element; var rndClass; var classesArr = ['one', 'two', 'three']; var container = $('.container'); for(i=0; i<10; i++) { rndClass = Math.floor(Math.random()*classesAr

我很难理解为什么下面的函数没有达到它应该达到的效果:

function example() {
    var $element;
    var rndClass;
    var classesArr = ['one', 'two', 'three'];
    var container = $('.container');

    for(i=0; i<10; i++) {
        rndClass = Math.floor(Math.random()*classesArr.length);
        $element = $('</div>', {'class': 'card '+classesArr[rndClass]+''});
        $(container).append($element);
    }

}
函数示例(){
var$元素;
变量rndClass;
var classesArr=['1','2','3'];
var container=$('.container');

对于(i=0;i要在仍然随机选择的情况下获得更多或更少的类类型,可以执行以下操作

jQuery(函数($){
变量类=['card-1'、'card-2'、'card-3'],
classes\u cpy=classes.slice(),
i=10,
跑;
对于(;我--;){
ran=(Math.random()*classes_cpy.length)| 0;
$('body')。追加(
$('', {
“文本”:我,
//从数组中删除并返回随机字符串
'class':'card'+class_cpy.拼接(ran,1)[0]
})
);
//当数组为空时,使用值重新加载该数组
如果(类\u cpy.length==0){
classes_cpy=classes.slice();
}
}
});
.card-1{背景色:绿色;}
.card-2{背景色:红色;}
.card-3{背景颜色:粉红色;}
.card{边框:1px纯白;}

要在仍然随机选择的情况下获得更多或更少的类类型,可以执行以下操作

jQuery(函数($){
变量类=['card-1'、'card-2'、'card-3'],
classes\u cpy=classes.slice(),
i=10,
跑;
对于(;我--;){
ran=(Math.random()*classes_cpy.length)| 0;
$('body')。追加(
$('', {
“文本”:我,
//从数组中删除并返回随机字符串
'class':'card'+class_cpy.拼接(ran,1)[0]
})
);
//当数组为空时,使用值重新加载该数组
如果(类\u cpy.length==0){
classes_cpy=classes.slice();
}
}
});
.card-1{背景色:绿色;}
.card-2{背景色:红色;}
.card-3{背景颜色:粉红色;}
.card{边框:1px纯白;}
我认为

$(function(){
    function example() {
     var $element = null;
     var rndClass = 0;
     var classesArr = ['one', 'two', 'three'];
     var $container = $('.container');
     var MAX_ELEMENTS = 10;

    for(;MAX_ELEMENTS--;) {
        rndClass = Math.floor(Math.random()*classesArr.length);
        $element = $('<div></div>', {
            'class': 'card '+ classesArr[rndClass],
            'text': MAX_ELEMENTS
        });
        $container.append($element);
    }

}

example();
});
$(函数(){
函数示例(){
var$element=null;
var rndClass=0;
var classesArr=['1','2','3'];
var$container=$('.container');
var MAX_元素=10;
对于(;MAX_元素--;){
rndClass=Math.floor(Math.random()*classesArr.length);
$element=$(“”{
“类”:“卡”+classesArr[rndClass],
“文本”:最大元素数
});
$container.append($element);
}
}
示例();
});
我认为

$(function(){
    function example() {
     var $element = null;
     var rndClass = 0;
     var classesArr = ['one', 'two', 'three'];
     var $container = $('.container');
     var MAX_ELEMENTS = 10;

    for(;MAX_ELEMENTS--;) {
        rndClass = Math.floor(Math.random()*classesArr.length);
        $element = $('<div></div>', {
            'class': 'card '+ classesArr[rndClass],
            'text': MAX_ELEMENTS
        });
        $container.append($element);
    }

}

example();
});
$(函数(){
函数示例(){
var$element=null;
var rndClass=0;
var classesArr=['1','2','3'];
var$container=$('.container');
var MAX_元素=10;
对于(;MAX_元素--;){
rndClass=Math.floor(Math.random()*classesArr.length);
$element=$(“”{
“类”:“卡”+classesArr[rndClass],
“文本”:最大元素数
});
$container.append($element);
}
}
example();
});
已更新

试一试

var primaryClass=“卡”;
var additionalClasses=[“一”、“二”、“三”];
var clones=$.map(数组(additionalClasses.length+1),函数(){
return[$.extend([],additionalClasses)]
});
var i=0;
var集合=数组(10);
var elems=$.map(集合、函数(el、idx){
i=!!克隆[i]。长度?i:i+1;
返回$(“”){
“文本”:idx,
“阶级”:初级阶级
+ " "
+初级班
+ "-" 
+克隆[i].拼接(Math.floor(Math.random()*克隆[i].长度),1)
})[0]
});
控制台日志(elems);
$(“body”).append(elems);

已更新

试一试

var primaryClass=“卡”;
var additionalClasses=[“一”、“二”、“三”];
var clones=$.map(数组(additionalClasses.length+1),函数(){
return[$.extend([],additionalClasses)]
});
var i=0;
var集合=数组(10);
var elems=$.map(集合、函数(el、idx){
i=!!克隆[i]。长度?i:i+1;
返回$(“”){
“文本”:idx,
“阶级”:初级阶级
+ " "
+初级班
+ "-" 
+克隆[i].拼接(Math.floor(Math.random()*克隆[i].长度),1)
})[0]
});
控制台日志(elems);
$(“body”).append(elems);


for(;i--;)位是什么?它只是倒计时到0。@Ilja我要回答你之前的问题,我已经发布了一个答案,然后它被删除了。我还在另一个浏览器选项卡中打开了代码。很抱歉,我正要发布代码,jsFidle崩溃了,所以我开始了新的一个。为什么(;i--;)bit?它只是倒数到0。@Ilja我正要回答你之前的问题,我已经发布了一个答案,然后它被删除了。我仍然在另一个浏览器选项卡中打开了代码。很抱歉,我正要发布我的代码,jsFidle崩溃了,所以我启动了一个新的。你的代码有拼写错误,应该是。你的代码有拼写错误,应该是.Super-neat,但它没有解决问题的这一部分:在10个分区中应该有或多或少相同数量的这些内容。这不会是谎言,我必须
console.log(JSON.stringify(clone))
在map函数的顶部,以了解这是如何工作的。这是一个非常酷的实现+1。@robbmj fwiw,在
克隆
返回[additionalClasses.slice()]
可以替代
返回[$.extend([],additionalClasses)]
Super-neat,但它并没有解决这部分问题:在10个分区中,应该有或多或少相同数量的这些应用。我必须
console.log(JSON.stringify(clone))
位于map函数的顶部,以了解其工作原理。这是一个非常酷的实现+1。@robbmj fwiw,在
克隆
返回[additionalClasses.slice()]
可以替换为
返回[$.extend([],additionalClasses)]