【发布时间】:2018-07-11 20:45:04
【问题描述】:
我编写了一个代码,将两个现有元素包装成一个新元素。我的第一次尝试是这样的:
var $btn = $("button"),
$ul = $btn.next("ul"),
$div = $("<div></div>");
$btn.wrap($div);
$div.append($ul);
我惊讶地发现,在代码运行后,ul 从 DOM 中消失了。 Fiddle.
我能够像这样从wrap 和append 之间的DOM 中选择div 来修复它(Fiddle):
$div = $btn.parent();
在 Google 中搜索了几次后,我找到了 this,并将代码中的 3 行替换为 (Fiddle):
$btn.wrap($div).after($ul);
但是,我想了解 div 和 wrap 方法发生了什么。为什么ul 在第一个示例中消失了?
【问题讨论】:
标签: jquery dom dom-manipulation