Javascript jQuery:阻止wrap()创建包装元素的副本

Javascript jQuery:阻止wrap()创建包装元素的副本,javascript,jquery,Javascript,Jquery,jQuery的wrap()文档中包含以下内容: 此结构的副本将环绕匹配元素集中的每个元素 这意味着,当我将要环绕另一个元素的元素保存到变量中时,在环绕之后,该变量不再指向环绕元素。因此,例如,在包装后向其添加另一个CSS类不会发生在包装元素(它是一个副本)上,而只发生在原始元素上 与此相反,append()不会复制元素 $(document).ready -> $appendEl = $("<span href='#'>appended</span>") $

jQuery的
wrap()
文档中包含以下内容:

此结构的副本将环绕匹配元素集中的每个元素

这意味着,当我将要环绕另一个元素的元素保存到变量中时,在环绕之后,该变量不再指向环绕元素。因此,例如,在包装后向其添加另一个CSS类不会发生在包装元素(它是一个副本)上,而只发生在原始元素上

与此相反,
append()
不会复制元素

$(document).ready ->
  $appendEl = $("<span href='#'>appended</span>")
  $('#append').append($appendEl) # Append
  $appendEl.addClass 'new-class' # Works

  $wrapEl = $("<span href='#'>wrapped</span>")
  $('#wrap').wrap($wrapEl) # Wrapp
  $wrapEl.addClass 'new-class' # Doesn't work
$(文档).ready->
$appendEl=$(“追加”)
$('#append')。append($appendEl)#append
$appendEl.addClass“新类”有效
$wrapEl=$(“已包装”)
$('#wrap')。wrap($wrapEl)#Wrapp
$wrapEl.addClass“新类”不起作用
我创建了一个代码笔来演示这一点:

那么为什么
wrap()
要复制元素,如何使上面的代码适用于
wrap()


为什么jQuery在执行
wrap()
时会复制元素?这难道不会造成很多开销和“污染”东西吗?

wrapEl=$('#wrap')。wrap($wrapEl)。parent()
wrap()
返回元素本身。您可以使用
$wrapEl.appendTo(“#wrap”)
来反转您的逻辑。
append
不是更适合您尝试执行的方法吗?@A.Wolff:谢谢,效果更好。@t.J.Crowder:这只是一个演示,不一定有意义。