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