【发布时间】:2013-01-22 10:43:10
【问题描述】:
这不是我的确切代码,而是相关部分:
<div id="myDiv" class="class1 class2" style="">
... other elements ...
</div>
我的 jQuery 代码克隆元素,然后最终用克隆替换原始元素:
clonedDiv = $('#myDiv').clone(true);
... some other code ...
$('#myDiv').replaceWith(clonedDiv);
这可以正常工作 - 唯一的问题是克隆的 div 以某种方式获得了原始样式中没有的属性:
<div id="myDiv" class="class1 class2"
style="overflow: hidden; height: 1px; padding-top: 0px; margin-top: 0px; padding-bottom: 0px; margin-bottom: 0px;">
... other elements ...
</div>
这是从哪里来的……?有什么办法可以预防吗? (我目前正在“破解”并明确将其设置回空字符串。)
【问题讨论】:
-
你能告诉我你的完整代码吗?我们克隆jsfiddle.net/uQHx7/6时没有添加样式
-
克隆具有 id 属性的元素可能会产生一些奇怪的副作用。 id 应该是唯一的,而您通过克隆具有 id 属性的元素来打破该规则。
-
@jakee - 不过,我在 DOM 中从来没有两个具有相同 ID 的元素。我将它克隆到一个变量中,然后替换原来的,所以只有 1 个具有 id 的元素。
-
@muthu - 我也无法真正复制 jsfiddle 中的错误......代码太复杂,无法在此处发布,我想我正在寻找有关其他内容的指针可能导致它。看看有没有其他人遇到过这个错误