如何将所有计算样式设置为元素上的文字样式?



这个问题(我认为(类似于SO上的这个问题:如何使用JavaScript将所有计算的CSS样式从一个元素中移动并将它们应用于另一个元素?

我想做的是找到所有通过 css 工作表应用的样式,并在元素上显式设置(如使用 style= 属性(。我想这样做的原因是,如果我在那里打开MS Word(2010(将获取样式

这是我的代码

var $this = $(this);
var styles = window.getComputedStyle(this, null);
$this.css(styles);

我也尝试过

var styles = document.defaultView.getComputedStyle(this, null);

当我在最后一行($this.css(样式(周围放置一个尝试捕获时,我收到一条错误消息"调用对象无效"。我不明白问题是什么

好吧,下面的代码片段可以满足您的需求,尽管我认为这不是您需要的。MS Word不是浏览器,我不确定它是否支持所有样式,或者jQuery是否在那里工作......

var $this = $('b');
var styles = window.getComputedStyle($this[0]);
$this.css(
Object.values(styles).reduce(
(a, e) => 0*(a[e] = styles[e]) || a, {}
)
)
console.log(`style="${$this.attr('style')}"`)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<b>I have styles</b>

相关内容

  • 没有找到相关文章

最新更新