为什么我得到 "Cannot set property 'innerHTML' of null at ahint"

Why am I getting "Cannot set property 'innerHTML' of null at ahint"

我尝试用 JS 编写一些代码,但是当我悬停鼠标时,出现错误 "Cannot set property 'innerHTML' of null at ahint"。我已经读到会发生这样的错误,因为 Chrome compiles/renders 甚至创建了 Div 之前的 JS 代码。因此,我把它放在底部进行检查。不幸的是,把它放在底部并没有解决我的问题。也许有经验的人会明白。

var hint = "Hello";

function ahint()
{
    document.getElementById('#randomhint').innerHTML = hint;
}

    <div id="randomhint" onmouseover="ahint()">!</div>

    <script type="text/javascript" src="main.js"></script>
</body>

从标识符中删除 #

var hint = "Hello";

function ahint()
{
    document.getElementById('randomhint').innerHTML = hint;
}

您可能已经在使用 jQuery 或类似库的代码中看到了 #,例如 $('#randomhint')。这就是这些库如何知道您要使用 id 而不是标签名称。

但是在使用 getElementById(它是“原版”JavaScript 的一部分)时不需要(也不能使用)它。对于 getElementById,只有实际的 id 值 ("randomhint") 属于那里。