javascript - 无法将属性设置为 null
问题描述
我有一个 HTML、CSS 和 JS 文件。除了我的控制台之外,一切都运行良好,向我显示一条消息“无法设置属性‘textContent’为空”。
我已经尝试过围绕代码,window.onload
但仍然没有运气。html代码在这里
游戏.js
var colors = [
'rgb(255, 0, 0)',
'rgb(255, 255, 0)',
'rgb(0, 255, 0)',
'rgb(0, 255, 255)',
'rgb(0, 0, 255)',
'rgb(255, 0, 255)'
];
var squares = document.querySelectorAll('.square');
var pickedColor = colors[3];
var display = document.getElementById('colorDisplay');
display.textContent = pickedColor;
for (var i = 0; i < squares.length; i++) {
// ADD INITIAL COLORS TO SQUARES
squares[i].style.backgroundColor = colors[i];
// ADD EVENTLISTENERS TO SQUARES
squares[i].addEventListener('click', function() {
console.log(this.style.backgroundColor);
});
}
HTML:
<!DOCTYPE html>
<html>
<head>
<title>Agent Color</title>
<link rel="stylesheet" type="text/css" href="game.css">
<script type="text/javascript" src="game.js"></script>
</head>
<body>
<h1>The great <span id="colorDisplay">RGB</span> color game</h1>
<div id="container">
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
</div>
</body>
<script type="text/javascript" src="game.js"></script>
</html>
解决方案
var display=document.getElementById("colorDisplay")
- 这是null
因为(至少在执行时)没有 id 的元素colorDisplay
。
如果您确定您的代码中有这样的元素,请确保您的 DOM 内容已经加载。
https://developer.mozilla.org/en-US/docs/Web/Events/DOMContentLoaded
推荐阅读
- c# - 绑定延迟后以编程方式触发事件
- kubernetes - 创建指向两个服务的 Kubernetes 入口
- laravel - 按月查询的 Laravel Group 数据适用于 MySQL,但在 PostgreSQL 数据库上失败
- python - 如何使用 Selenium [Python] 获取 iframe 源
- java - M1 Mac 上 System.getProperty("os.arch") 的值?
- git - 如何从以前的 Git 提交中删除文件
- c# - 从 Xamarin.Forms 调用 Android 函数
- java - 开发配置文件 Spring Boot 中的 Mockserver
- python - Python替换给定模式的子字符串
- c# - blazor 中的 ValueChanged 和 ValueEpression?