jQuery附加在附加元素中
我有以下jQuery代码可以工作,但它让我思考,如果有可能对附加的内容执行追加操作,而无需指定我想要追加的内容。 append().append()
没有做到这一点,它只是将两个元素放在一起,而不是第一个append()
动作的子元素。
作品:
var container = $('#container'), child = 'child'; $('#container').append($('',{ 'id' : 'child' })); $('#' + child).append($('', { 'class' : 'close', 'href' : 'javascript:;', html : 'close', click : function(e){ e.preventDefault(); $('#' + child).remove(); } }));
不起作用:
var container = $('#container'), child = 'child'; $('#container').append($('',{ 'id' : 'child' })).append($('', { 'class' : 'close', 'href' : 'javascript:;', html : 'close', click : function(e){ e.preventDefault(); $('#' + child).remove(); } }));
http://jsfiddle.net/Y8TwW/1/
您可以使用.appendTo()
将第一个
附加到具有ID容器的元素,以便您可以引用该新元素,然后使用.append()
:
$('',{ 'id' : 'child' }).appendTo('#container').append( $('', { 'class' : 'close', 'href' : 'javascript:;', html : 'close', click : function(e){ e.preventDefault(); $('#' + child).remove(); } }) );
因为append
不会返回对附加内容的引用。 它指的是同一个对象,即第一个附加后的container
,或者无论你要运行多少个附加。 因此,正如其他建议使用appendto
或您可以使用以下更好地说明您失败的原因。
var container = $('#container'), child = 'child'; $('#container').append($('',{ 'id' : 'child' })).find('#' + child).append($('', { 'class' : 'close', 'href' : 'javascript:;', html : 'close', click : function(e){ e.preventDefault(); $('#' + child).remove(); } }));
小提琴http://jsfiddle.net/Y8TwW/3/