2011-07-22 94 views
3

我希望能夠動態追加到動態追加的元素。 如果你有這樣的:如何在動態插入的元素上動態插入元素?

<div id="main"> 

</div> 

$(document).ready(function() { 
    $('#main').append('<div id="inner"></div>'); 

    $('#inner').append('<div id="goal"></div>'); 
}); 

#goal永遠不會被追加。有沒有一個jquery函數來處理這個問題,或者我該怎麼做?

http://jsfiddle.net/jmZY4/

+0

我不能做他們在一起,因爲我有一個插入元素的插件,然後我想通過調用插入中的第一個元素了。 – Catfish

回答

4

把它發揮得淋漓盡致(live copy   — 有在你的榜樣的CSS中的錯誤,順便說一句,雙#main規則和沒有#inner規則):

$(document).ready(function() { 
    var inner = $('<div id="inner"></div>'); 
    inner.appendTo('#main'); 
    inner.append('<div id="goal"></div>'); 
}); 

appendToappend相反。

您可以編寫更緊湊,但(在我看來)這是不值得的清晰度的損失(live copy):

$(document).ready(function() { 
    $('<div id="inner"></div>') 
     .appendTo('#main') 
     .append('<div id="goal"></div>'); 
}); 

當然,在你的精確例如,你可以只(live copy ):

$(document).ready(function() { 
    $('#main').append('<div id="inner"><div id="goal"></div></div>'); 
}); 

......但我猜你有兩個分開做的理由。

+0

哦,這是我的jsfiddle中的.css規則。好吧,如果這確實起作用,你們中的任何人都可以在這裏解決我的問題 - http://stackoverflow.com/questions/6754251/need-help-with-twitter-widget。我有一個hellofa時間。 – Catfish

0

試試這個

$(document).ready(function() { 
    $('<div id="inner"></div>').append('<div id="goal"></div>').appendTo('#main'); 
});