开发者

How to dynamically insert an element on an element that was dynamically inserted?

I want to be able to dynamically append to an element that was dynamically appended. If you have this:

<div id="main">

</div>

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

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

#goal never gets appended. Is there a jquery function to handle this or开发者_高级运维 how would I do it?

http://jsfiddle.net/jmZY4/


Turn it on its head (live copy — there was a bug in the CSS of your example, btw, two #main rules and no #inner rule):

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

appendTo is kind of the converse of append.

You can write that more compactly, though (in my view) it's not worth the loss of clarity (live copy):

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

Of course, in your precise example, you could just (live copy):

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

...but I'm guessing you have a reason for doing the two separately.


Try this

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜