jQuery:阻止wrap()创建包装元素

时间:2016-04-12 08:17:15

标签: javascript jquery

在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

我创建了一个CodePen来演示:http://codepen.io/jmuheim/pen/QNQZKw

那么为什么wrap()会复制该元素,以及如何让上面的代码适用于wrap()

为什么jQuery在执行wrap()时会复制元素?这不会带来太多开销和“污染”的事情吗?

0 个答案:

没有答案