2011-07-22 95 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'); 
});