jQuery clone从何处获取这些样式规则?
这不是我的确切代码,而是相关部分:jQuery clone从何处获取这些样式规则?,jquery,styles,clone,Jquery,Styles,Clone,这不是我的确切代码,而是相关部分: <div id="myDiv" class="class1 class2" style=""> ... other elements ... </div> 这是正确的-唯一的问题是克隆的div以某种方式获得了原始版本中没有的样式属性: <div id="myDiv" class="class1 class2" style="overflow: hidden; height: 1px; padding-top:
<div id="myDiv" class="class1 class2" style="">
... other elements ...
</div>
这是正确的-唯一的问题是克隆的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>
... 其他元素。。。
这是从哪里来的。。。?有什么办法可以预防吗?(我目前正在“破解”并将其显式设置回空字符串。)这些样式可能是您的浏览器添加的默认样式。看,所有的值都是0px。我看不出这些样式将如何在克隆的元素中产生问题 您可以查看相关帖子:
可以通过一些
javascript
或jQuery
进行样式化
如果要删除样式属性,请按以下方式执行:
clonedDiv = $('#myDiv').removeAttr('style').clone(true);
//---------------------^^^^^^^^^^^^^^^^^^^---------remove the attr then clone it.
你能告诉我你的全部代码吗?克隆时没有添加样式,这可能是克隆具有id属性的元素的一些奇怪的副作用。id应该是唯一的,你克隆了一个具有id属性的元素,这违反了这个规则。@jake-不过,我在DOM中从来没有两个元素具有相同的id。我将其克隆到一个变量中,然后替换原来的变量,因此只有一个id为的元素。@muthu-我也无法在JSFIDLE中复制错误。。。代码太复杂,无法在这里发布,我想我是在寻找其他可能导致它的东西的指针。看看是否有人遇到过这个问题,这基本上就是我在文章最后一行提到的“黑客”所做的。。。我只是想知道是否有什么方法可以阻止它的发生,或者至少可以理解它是从哪里来的
clonedDiv = $('#myDiv').removeAttr('style').clone(true);
//---------------------^^^^^^^^^^^^^^^^^^^---------remove the attr then clone it.