无法将jquery元素追加到新包装的元素

kbi*_*irk 2 html javascript css jquery

我想在已经存在的div周围包装一个div,然后追加到新创建的父div.

// create parent
var $top = $('<div id="top">top</div>');

// wrap it around child
$('#middle').wrap($top);

// append to new parent
$top.append('<div id="bottom">bottom</div>');
Run Code Online (Sandbox Code Playgroud)

这是jsfiddle显示附加不起作用....

http://jsfiddle.net/3WRDc/2/

这是它应该是什么样子:

http://jsfiddle.net/3WRDc/1/

任何想法为什么这么简单的操作顺序不起作用?我知道我可以轻松地从父母那里开始并追加两个孩子,但在这种情况下我需要这样做.

Fré*_*idi 6

wrap()克隆您指定的包装器.文件说(强调我的):

.wrap()函数可以接受任何可以传递给$()工厂函数的字符串或对象来指定DOM结构.这个结构可以嵌套几层深,但应该只包含一个inmost元素.此结构的副本将围绕匹配元素集中的每个元素进行包装.此方法返回用于链接目的的原始元素集.

你必须重新选择$top:

$("#top").append('<div id="bottom">bottom</div>');
Run Code Online (Sandbox Code Playgroud)