47

为什么这不起作用?

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

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

4 回答 4

92

因为getElementsByTagName()返回NodeList,而不是单个元素。将其视为数组:

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

在以下情况下甚至更简单body

document.body.style.display = "block";
于 2013-03-20T09:21:01.573 回答
6

如果你想要body标签,你可以简单地使用document.body. 请参阅演示。

console.time("show body");
document.body.style.display = "none";

setTimeout(function () {
    console.timeEnd("show body");
    document.body.style.display = "block";
}, 3000);
<h1>Hello World!</h1>

于 2013-03-20T09:27:04.167 回答
3

我使用了以下解决方案:

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

    setTimeout(function () { changeDisplay(); }, 0);
</script>
于 2014-12-04T17:52:57.903 回答
0

whilebody是文档本身的一部分,您不必调用 getElementBy...,您只需直接说document.body.style.display = "block";

于 2021-03-13T03:06:55.827 回答