【问题标题】:Remove some classes from <style> tag in javascript从 javascript 中的 <style> 标记中删除一些类
【发布时间】:2020-04-17 10:20:08
【问题描述】:

我有一个文本区域,其中有一些 html,例如:

<style>
        a,
        body {
            color: #000
        }

        .test-row-1,
...
</style>
<div class="page-container">
...
</div>

在 javascript 中,我需要在“样式”标签内的所有元素上循环,以便做一些事情。 最后,我需要创建另一种“样式”,其中只有原始类中的一些类。 在示例中,我需要删除 body 类。

这可能吗?

谢谢

【问题讨论】:

标签: javascript html css styles


【解决方案1】:

style 标记内的部分不能像 javascript 中的普通元素一样被访问。但是,您可以访问单个 HTML 元素并更改它们的样式。

在您的示例中,您说您需要“删除 body 类”,所以我认为这意味着您不再希望 body 具有颜色 #000

要做这样的事情,你必须先在 javascript 中获取你的元素并将它存储在一个变量中。有几种方法可以获取 body,您可以使用以下任一方法:

var body = document.querySelector("body");
var body = document.getElementsByTagName("body")[0];

现在,您可以使用element.style.property = value 格式更改元素的样式属性。例如,要将颜色更改为红色,请使用以下脚本:

body.style.color = 'red';

这是一个工作代码sn-p:

var body = document.querySelector("body");

body.style.color = 'red';
body, a {
  color: #000;
}
<body>
  Here is some text.
  <a>Here is a link.</a>
</body>

请注意,链接仍然是黑色的,因为它仍然在 CSS 中以这种方式定义。

【讨论】:

  • 您好,感谢您的回复。我的 html 中没有任何 body 标签。我真正需要的是从“样式”标签中删除正文类,因为它会覆盖最后一页(我有正文标签)中的一些其他样式。我描述的是 html 编辑器生成的内容和存储在数据库中的内容,最后是我们 webapp 页面内加载的内容。所以问题不是从元素中删除样式,而是没有在“样式”标签中定义该类。但是,如果不可能,我认为唯一的方法是使用“替换”
猜你喜欢
  • 2014-03-23
  • 2014-06-17
  • 1970-01-01
  • 1970-01-01
  • 2011-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-13
相关资源
最近更新 更多