是否有一个JQuery函数为选定的元素提供与另一个元素相同的CSS?

时间:2014-09-19 17:50:58

标签: javascript jquery html css

我想知道是否有一个JQuery函数可以用来将CSS从给定元素应用到另一个元素。我正在谈论完全 CSS;由于继承而没有更多应用。

更具体一点:

<div id="d1">
    <p id="p1">Here is some text.</p>
</div>

<div id="d2">
    <p id="p2">Here is some other text.</p>
    <!-- I want this text in p2 to have the same styling as the text in p1, even after the inheritances of the divs are factored. -->
</div>

<script type="text/javascript">
    $(...).(...); // ??????????????
</script>

如果JQuery具有这样的功能,它将节省我一小时的尝试使用我自己的样式表(我使用具有主样式表的CMS,我无法改变)弄清楚如何覆盖/添加一百万个属性。

1 个答案:

答案 0 :(得分:1)

虽然与Opera不兼容,但这应该可以实现您的目标:http://jsfiddle.net/6o3f3em6/1/

  • 使用getComputedStyle获取目标元素的所有CSS属性
  • 将对象字符串化为CSS
  • 将cssText应用于接收元素

以下是相关代码:

var target = document.querySelector('#p1');
var receiver = document.querySelector('#p2');
var styles   = getComputedStyle(target);

var cssText = '';
for(var style in styles){
    cssText += style+':'+styles[style];
}

receiver.style.cssText = cssText;