在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()
时会复制元素?这不会带来太多开销和“污染”的事情吗?