开发者问题收集

HTML、JS,接收未捕获的类型错误:当变量有值时无法设置属性“innerHTML”为 null

2020-02-24
62

Situation

我有一个 HTML,我想在每次重新加载时显示一个随机单词。

Problem

我有以下 HTML:

<h1 style="font-family: 'Oswald', ;">Alex is currently: <span style="color: rgba(25, 114, 120, 1);" id="status">Alive</span></h1>

我想将 status 的值更改为除 alive 之外的随机单词。我将这些变量存储在一个数组中,并且我有一个运行 onload() 的函数:

function changeStatus() {
   let statuses = ['Existing', 'Vibing'];
   let finalStatus = statuses[Math.floor(Math.random() * statuses.length)];
   document.getElementById('user').innerHTML = finalStatus;
}

Error

但是,当我重新加载页面时,控制台中出现以下错误:

Uncaught TypeError: Cannot set property 'innerHTML' of null

Ideal outcome

我想知道我做错了什么以及如何修复它,理想情况下只使用 Javascript,但如果有必要,我也可以 使用 jQuery。

3个回答

您正在访问一个不存在的 id user 。可能您想要

document.GetElementById('status')

Prakhar Londhe
2020-02-24

没有 id 为“user”的元素。

document.getElementById('user').innerHTML = finalStatus;

替换为

document.getElementById('status').innerHTML = finalStatus;

Sami Farhat
2020-02-24
function changeStatus() {
   let statuses = ['Existing', 'Vibing'];
   let finalStatus = statuses[Math.floor(Math.random() * statuses.length)];
   document.getElementById('status').innerHTML = finalStatus;
}
<h1 style="font-family: 'Oswald', ;">Alex is currently: <span style="color: rgba(25, 114, 120, 1);" id="status">Alive</span></h1>

<button onclick="changeStatus()">Change Status</button>
Shiv Patne
2020-02-24