如何在不给定ID或类的情况下移除JavaScript样式?

3

所以我有这个HTML代码,在其中使用了隐藏网站主体的方法:

    <style>
        body{
          display: none;
        }
    </style>

    <body>
    <p>Something..</p>
    </body>

但是现在我想使用JavaScript删除它,而不给body一个ID或类。作为一种解决方案,我尝试了以下方法,但它没有起作用。

document.getElementsByTagName("body")[0].removeAttribute("style");

感谢您的帮助,非常感激。


快速问题:你为什么要首先隐藏网站? - Andy
嗨,这是为我尝试构建的一个简单网络应用程序。我只是简化了问题,以便更容易理解我的问题。 - Bathiudeen
好的。为什么你不想使用类? - Andy
1
你可以直接设置 document.body.style 的属性。 document.body.style.display = 'block' - kid-joker
2个回答

2
如果您想在HTML中删除添加的样式标签,您需要使用 document.getElementsByTagName 来选择它,并对其节点调用 remove 方法。 工作演示

document.getElementsByTagName("style")[0].remove();
body {
  display: none;
}
<p>Something..</p>

如果您想为元素设置样式

如果您只想设置body标签的display样式,您可以使用JavaScript来实现。

document.getElementsByTagName("body")[0].style.display

更通用的解决方案

const body = document.getElementsByTagName("body")[0];
const targetStyles = {
  display: 'block',
}
Object.entries(targetStyles).forEach(([style, value]) => body.style[style] = value);
body {
  display: none;
}
<p>Something..</p>

您的脚本出了什么问题?
document.getElementsByTagName("body")[0].removeAttribute("style");

这个脚本从HTML中选择body标签并删除添加到body的内联样式。它适用于以下模板,但不适用于您的要求。

document.getElementsByTagName("body")[0].removeAttribute("style");
<body style="background: blue;">
  <p>Something..</p>
</body>


2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接