Javascript 在主体上设置样式

Javascript 在主体上设置样式,javascript,Javascript,为什么这不起作用 使用vanilla JavaScript设置body标签上的样式 <html> <body style="display:none;"> test </body> <script> document.getElementsByTagName("body").style.display = "block"; </script> </html> 测试 do

为什么这不起作用

使用vanilla JavaScript设置body标签上的样式

<html>
   <body style="display:none;">
       test
   </body>
   <script>
       document.getElementsByTagName("body").style.display = "block";
   </script>
</html>

测试
document.getElementsByTagName(“body”).style.display=“block”;
因为返回的是一个,而不是单个元素。将其视为数组:

document.getElementsByTagName("body")[0].style.display = "block";
如果是
主体
,则更简单:

document.body.style.display = "block";

如果需要
body
标记,只需使用
document.body
。请看演示

console.time(“show body”);
document.body.style.display=“无”;
setTimeout(函数(){
控制台。时间结束(“显示主体”);
document.body.style.display=“block”;
}, 3000);

你好,世界我使用了以下解决方案:

<script>
    function changeDisplay(){
        document.body.style.display = 'block';
    }

    setTimeout(function () { changeDisplay(); }, 0);
</script>

函数changeDisplay(){
document.body.style.display='block';
}
setTimeout(函数(){changeDisplay();},0);

虽然
body
是文档本身的一部分,但您不必调用getElementBy…,只需直接说出它
document.body.style.display=“block”

是否可能,因为只有一个body标签?是document.input.style.display=“block”;允许?@Hello World否,不允许输入
或其他元素,只能输入
正文
。对于其他元素,只需迭代从
getElementsByTagName()
返回的
NodeList
,并为每个迭代元素设置样式。@Hello World:是和否。
document.body
是引用body元素的特殊属性,因为正如您所说,只能有一个。它不适用于任何其他元素。