gpt4 book ai didi

javascript - 在控制台中获取 'Cannot read property ' classList' of undefined'

转载 作者:行者123 更新时间:2023-12-02 21:07:18 24 4
gpt4 key购买 nike

const square = document.querySelectorAll('square');
const mole = document.querySelectorAll('mole');
const timeLeft = document.querySelector('#time-left');
let score = document.querySelector('#score');

let result = 0;

function randomSquare() {
square.forEach(className => {
className.classList.remove('mole');
});
let randomPosition = square[Math.floor(Math.random() * 9)];
randomPosition.classList.add('mole');

//assign the id of the randomPosition to hitPosition for us to use later
hitPosition = randomPosition.id;
}

square.forEach(id => {
id.addEventListener('mouseup', () => {
if(id.id === hitPosition) {
result = result + 1;
score.textContent = result;
}
});
});

function moveMole() {
let timerId = null;
timerId = setInterval(randomSquare, 1000);
}

moveMole();
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Whack a mole</title>
<link rel="stylesheet" href="style.css">
</head>
<body>

<h1>Whack a mole!</h1>

<h2>Your score:</h2>
<h2 id="time-left">60</h2>
<div class="grid">
<div class="square" id="1"></div>
<div class="square mole" id="2"></div>
<div class="square" id="3"></div>
<div class="square" id="4"></div>
<div class="square" id="5"></div>
<div class="square" id="6"></div>
<div class="square" id="7"></div>
<div class="square" id="8"></div>
<div class="square" id="9"></div>
</div>

</body>
<script src="app.js" charset="utf-8"></script>
</html>

我正在遵循有关使用 javascript 制作网格游戏的在线教程,但收到此错误:未捕获的类型错误:无法读取 randomSquare 中未定义的属性“classList”(app.js:13)

我的编码与视频完全相同,但不知道为什么它不起作用。谁能告诉我我在这里缺少什么?

谢谢。

最佳答案

您设置了不正确的querySelector。 document.querySelectorAll('square') 和 document.querySelectorAll('mole') 将分别查找具有这些名称的 html 标签。

const square = document.querySelectorAll('.square');
const mole = document.querySelectorAll('.mole');
const timeLeft = document.querySelector('#time-left');
let score = document.querySelector('#score');

let result = 0;

function randomSquare() {
square.forEach(className => {
className.classList.remove('mole');
});
let randomPosition = square[Math.floor(Math.random() * 9)];
randomPosition.classList.add('mole');

//assign the id of the randomPosition to hitPosition for us to use later
hitPosition = randomPosition.id;
}

square.forEach(id => {
id.addEventListener('mouseup', () => {
if(id.id === hitPosition) {
result = result + 1;
score.textContent = result;
}
});
});

function moveMole() {
let timerId = null;
timerId = setInterval(randomSquare, 1000);
}

moveMole();
    <html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Whack a mole</title>
<link rel="stylesheet" href="style.css">
</head>
<body>

<h1>Whack a mole!</h1>

<h2>Your score:</h2>
<h2 id="time-left">60</h2>
<div class="grid">
<div class="square" id="1"></div>
<div class="square mole" id="2"></div>
<div class="square" id="3"></div>
<div class="square" id="4"></div>
<div class="square" id="5"></div>
<div class="square" id="6"></div>
<div class="square" id="7"></div>
<div class="square" id="8"></div>
<div class="square" id="9"></div>
</div>

</body>
<script src="app.js" charset="utf-8"></script>
</html>

关于javascript - 在控制台中获取 'Cannot read property ' classList' of undefined',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61193578/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com