首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将HTML元素中的CSS类替换为其在JavaScript中的CSS属性

问将HTML元素中的CSS类替换为其在JavaScript中的CSS属性
EN

Stack Overflow用户
提问于 2020-02-14 04:34:32
回答 2查看 65关注 0票数 2

我正在尝试使用JavaScript (类似于屏幕截图)获取超文本标记语言页面的源代码。对于样式,我使用的是外部CSS。但是,当我获得HTML源代码时,样式将不会被应用,因为我将无法获得元素的CSS属性。

因此,我想知道是否可以将CSS类名替换为该类中定义的实际CSS属性。例如:

对于HTML元素,

代码语言:javascript
复制
<div class="exampleClass"><div>

和CSS,

代码语言:javascript
复制
.exampleClass {
    background-color:#FFFFFF;
}

那么使用Javascript提取的源代码将是

代码语言:javascript
复制
<div style="background-color:#FFFFFF;"><div>

我如何在JavaScript中做这件事?谢谢

EN

回答 2

Stack Overflow用户

发布于 2020-02-14 05:11:22

代码语言:javascript
复制
function getCSSPropertiesBySelector(selector) {
    return [...document.styleSheets].map(stylesheet => {
        var g = [...stylesheet.cssRules].find(rule => rule.selectorText === selector);
        if (g) {
            return g.style.cssText;
        }
    }).find(r => r);
}

主要基于https://stackoverflow.com/a/16966533/1799147

代码语言:javascript
复制
getCSSPropertiesBySelector('.logo')
//"display: block; grid-area: I / I / I / I; width: 200px; height: 44px; margin-right: 24px;"

可能有更好的方法来做这件事,但它能完成工作。如果此示例中有重复的类,则不会起作用,如果在另一个样式表中具有相同的类,则可能希望将其更改为附加到属性

票数 1
EN

Stack Overflow用户

发布于 2020-02-14 04:46:15

您可以在javascript中将所需的类分配给标记HTML。例如:

代码语言:javascript
复制
const div = document.createElement('div');
div.className = 'exampleClass';
document.body.appendChild(div);

或

代码语言:javascript
复制
div.classList.add('exampleClass');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60216048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档