2011-03-30 37 views
0
var parent = $('<div>parent</div>'); 
$('div').wrap(parent); 

parent.append('<div>appended</div>'); 

我使用下面的html代码测试它,并且append方法在父对象上不起作用。我在哪里犯错误?包装的上下文无法正常工作

<div>child</div> 

编辑:预期的HTML结果是

<div>parent 
<div>child</div> 
<div>appended</div> 
</div> 
+0

你想做什么?结果应该是什么?之后向'parent'添加内容不会对用于包装的元素产生任何影响。 – 2011-03-30 11:21:44

回答

1

你可以这样做:

$('div').wrap('<div>parent</div>').after('<div>appended</div>'); 

由于每个div是缠元素,附加到父母的独子是一样的div后插入新的元素。

DEMO

0

尝试

$(parent).html($(parent).html() + '<div>appended</div>'); 

或者

$(parent).append($('<div></div>').html('appended')); 

而且这可能工作

$(parent).append($('<div>appended</div>')); 
0

你caould尝试给孩子和ID:

HTML

<div id="child">child</div> 

jQuery的

var parent = '<div>parent</div>'; 
$('div').wrap(parent); 

$('#child').parent().append('<div>appended</div>'); 

该作品一个治疗,检查出来 - http://jsfiddle.net/ajthomascouk/MXbMQ/

+0

没有理由给这个元素一个ID。 '$('div')。parent()...'也可以。 – 2011-03-30 11:39:45

+0

@Felix Kling,不正确,在上面编辑我的小提琴,并查看结果。它会追加两个'

appended
' – Alex 2011-03-30 12:54:56

+0

是真的。因为现在它也选择“父母”div。无论如何,这可以通过方法链来解决:'$('div')。wrap(parent).parent()。append('

appended
');'。 – 2011-03-30 13:04:09