我正在尝试使用 JavaScript 更改元素的样式,但是,当我尝试更改时出现此错误: test.html:4 Uncaught TypeError: Cannot read property 'style' of null at test.html:4
这是我的代码:
<html>
<head>
<script type="text/javascript">
document.getElementById("test").style.marginTop="20px";
</script>
</head>
<body>
<p id="test">
this is a test
</p>
</body>
</html>
我是 JavaScript 的新手,如果我做错了什么,很抱歉,但对我来说一切似乎都很好。我可能犯了一些愚蠢的错误。
您的 JavaScript 代码在创建带有 p
标签的document
之前执行。
要解决此问题,请将代码放在body
标记的底部或文档加载已完成事件中。
<html>
<head>
</head>
<body>
<p id="test">
this is a test
</p>
<script type="text/javascript">
document.getElementById("test").style.marginTop="20px";
</script>
</body>
</html>
此外,将脚本放在"body"元素的底部可以提高显示速度,因为脚本编译可能会减慢显示速度。
这样将其包装在事件侦听器中
window.onload = function(event){
document.getElementById("test").style.marginTop="20px";
}
因此,当元素可用时,您可以使用它。当前元素不可用,因为它尝试在页面加载之前获取元素。所以要运行代码当元素可用时,像上面一样包装它。
这是一个运行时错误。 您的 JavaScript 正在尝试访问执行语句时尚不存在的元素。 将 JavaScript 代码块移动到文档底部。
这里的问题是脚本是在页面上带有id="test"
的div
之前执行的。您可以将代码移动到页面底部,也可以在加载窗口时添加事件侦听器,如下所示:
<script type="text/javascript">
window.addEventListener('load', function(){
document.getElementById("test").style.marginTop="20px";
});
</script>