Javascript 向动态生成的div添加样式

Javascript 向动态生成的div添加样式,javascript,jquery,css,Javascript,Jquery,Css,我正在工作。为什么我不能为动态生成的div添加边距 jQuery(function () { var rnd1 = Math.ceil(Math.random() * 450); var rnd2 = Math.ceil(Math.random() * 450); for (var i = 0; i < 6; i++) { $('.wrapper').append('<div class="box"></div>');

我正在工作。为什么我不能为动态生成的div添加边距

jQuery(function () {
    var rnd1 = Math.ceil(Math.random() * 450);
    var rnd2 = Math.ceil(Math.random() * 450);
    for (var i = 0; i < 6; i++) {
        $('.wrapper').append('<div class="box"></div>');
        //        $('.box').css({"left": rnd1,"top": rnd2});
    }
    $(".box").each(function () {
        $(this).css({
            "left": rnd1,
            "top": rnd2
        });
    });
在循环内部,使用
.each()
作为:

 $(".box").each(function () {
        $(this).css({
            "left": rnd1,
            "top": rnd2
        });
    });

但显然他们没有做这项工作

因为您没有添加边距,所以您正在设置
顶部
左侧
位置,并且只有在元素没有静态位置时才有效

$(this).css({"left": rnd1,"top": rnd2, position: 'relative'});
或者你可以增加保证金

$(this).css({"margin-left": rnd1, "margin-top": rnd2});
作为旁注,您可以在创建元素时添加样式,第二个循环是不必要的

for (var i = 0; i < 6; i++) {
    $('.wrapper').append(
        $('<div />', {
            'class' : 'box',
            css : {
                marginLeft : rnd1,
                marginTop  : rnd2
            }
        })
    );
}
for(变量i=0;i<6;i++){
$('.wrapper').append(
$('', {
“类”:“框”,
css:{
保证金左图:rnd1,
marginTop:rnd2
}
})
);
}

为什么不在
.each()
循环中定义
.someClass
和所需的CSS属性以及
.toggleClass(“someClass”)
?另一个重复问题的可能重复:@royhowie-回答为“您可以使用
live
”的问题实际上不是重复的,这是错误的。谢谢阿德内奥,但这也引起了一些问题。你能看看这里吗:它完全按照预期工作,但可能不像你预期的那样。你期望会发生什么?我只是希望包装器类中的盒子被随机分开。这就是为什么我试着使用left和right,然后你必须在循环中得到随机值,现在你有一个随机数,并且你对所有的框都使用它。因为边距总是保持相同的大小,而且它看起来不像是在重复边距!
for (var i = 0; i < 6; i++) {
    $('.wrapper').append(
        $('<div />', {
            'class' : 'box',
            css : {
                marginLeft : rnd1,
                marginTop  : rnd2
            }
        })
    );
}