开发者问题收集

document.getElementById('blocks').value = blocks; 出现错误

2019-12-18
202

好的,我很久以前就尝试过这个,但从来没有发生过。

如果我这样做

var blocks = 0;
document.getElementById('blocks').value = blocks;

Uncaught TypeError: Cannot set property 'value' of null

<!DOCTYPE html>
<html>
<head>
    <title>Home</title>
    <link rel="stylesheet" href="/css/Index.css">
    <script src="/js/Index.js"></script>
</head>
<body>
    <input type = "text" id="blocks"/>
</body>
</html>
3个回答

尝试将脚本移至正文底部。执行时元素不存在。

<head>
    <title>Home</title>

    <link rel="stylesheet" href="/css/Index.css">

</head>

<body>
    <input type = "text" id="blocks"/>
    <script src="/js/Index.js"></script><!-- here-->

</body> 
Robert
2019-12-18

如果您的脚本保存在其自己的 JS 文件中(即不是作为 HTML 中的 <script> 标记),则在文档加载之前您无法访问 DOM 元素。因此,请将您的代码包装在 onload 事件处理程序中:

document.onload = function() {
    var blocks = 0;
    document.getElementById('blocks').value = blocks;
}
Anis R.
2019-12-18

尝试将 <script> 标签放置在 <body> 元素的末尾,以确保在调用脚本时可以访问该元素:

<!DOCTYPE html>
<head>
    <title>Home</title>
    <link rel="stylesheet" href="/css/Index.css">
</head>
<body>
    <input type = "text" id="blocks"/>
    <script src="/js/Index.js"></script>
</body> 
Rion Williams
2019-12-18