在jQuery中克隆样式?

我有一个名为spn1 ,它有一些来自内联+ CSS文件的样式。

我有另一个名为spn2

如何将spn1完整样式克隆到spn2

我希望spn2看起来像spn1一样(风格)。

看看这个post: https : //stackoverflow.com/a/6416527/541827
我们的想法是将所有样式的属性从一个项目复制到另一个项目

或者只是使用jquery.copycss.js插件,答案是基于。
用法:

 $('#some-element').copyCSS('#another-element'); // copy all styles $('#some-element').copyCSS('#another-element', ['top', 'left']); // copy just top and left $('#some-element').copyCSS('#another-element', null, ['top', 'left']); // copy everything except top and left 

试试这个:

 $("#spn2").attr("style", $("#spn1").attr("style")) .addClass($("#spn1").attr("class")); 

jQuery没有任何直接的工具来做这件事。 您将不得不使用普通的旧JavaScript来查找跨浏览器的方式来将一个元素的计算样式复制到另一个元素。 这个答案有一个潜在解决方案的实现。

UPDATE

检查这个小提琴: http : //jsfiddle.net/9BJ5y/


更好的想法是克隆spn1并用它替换spn2。

即:像:

 var x = $('#spn2').html(); $('#spn2').replaceWith($('#spn1').clone().html(x).attr('id', 'spn2')); 

 
Something

 var replica=$('#template').clone(); replica .removeAttr('id') .css('display', 'block') .find('span').text('Whatever'); replica.appendTo('#container'); 

有没有理由你不是简单地做.clone(true)?

http://jsfiddle.net/johncmolyneux/6Fz84/

此示例复制内联和类样式,但不复制id样式(这可能非常有用)。

试试这个:

 document.getElementById("spn2").style = document.getElementById("spn1").style; 

为什么不在当时对这两个元素应用任何规则?

就像是:

 $('spn1','spn2').css({color: 'red'}); 

您可以使用多个选择器http://api.jquery.com/multiple-selector/