2013-02-20 79 views
0

我投入DOM div标签,使用jQuery append()方法设置标签的CSS属性,附加标签到DOM

之前,我想这之前推杆,设置div标签的一些CSS属性,例如visibility: "hidden"

这不起作用:

$(document).ready(function() { 

    $(".child").css({ 
     visibility: "hidden" 
     }); 

     $("body").append('<div class="child"></div>'); 


}); 

http://jsfiddle.net/SBAFk/

如何解决这个问题?

+0

你告诉保留名未出生的婴儿的股利? – 2013-02-20 12:32:33

回答

6

您的代码无法正常工作,因为它不会创建新的CSS规则,而只是搜索匹配的元素 - 而且还找不到新元素。最简单的方法是创建元素,设置它的CSS属性,然后将其添加到DOM:

var div = $('<div class="child"></div>').css('visibility', 'hidden'); 
$('body').append(div); 

另一种选择是创建一个新的CSS规则的选择匹配。

+0

所以你是说@ bipen的[回复](http://stackoverflow.com/a/14979980/766570)将无法正常工作? – abbood 2013-02-20 12:44:42

+1

这也可以工作,但OP要求在将它附加到DOM之前完成。 – ThiefMaster 2013-02-20 12:45:25

+0

那么,这是在谷歌“排名前添加.css到div”的最高排名,这完全是我想要的。 – 2013-06-14 22:35:13

1

你的代码存在的问题是,jquery正在剔除child类,然后它在DOM中堕落......它不会被找到,因为它没有被插入到DOM树中。在你的代码之后输入你的.css()代码附加

$(document).ready(function() { 
    $("body").append('<div class="child"></div>'); 

    $(".child").css({ 
    visibility: "hidden" 
    }); 
}); 

fiddle here

+0

我可以知道为什么我有一个downvote .. – bipen 2013-02-20 12:35:48

+2

我只是投票支持你..你不应该得到downvote(我正要写完全相同的答案,你)..你的解决方案是健全的..看起来人们往往会自动投票给最有分数的家伙..伤心 – abbood 2013-02-20 12:42:56

+0

谢谢@abbood ... :) .. cheeers ... – bipen 2013-02-20 12:45:33