2013-02-20 97 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