#javascript
Вопрос:
Я создал игру с использованием JavaScript, и я хотел бы, чтобы фон изменился после окончания игры или после isGamerOver = правда, чтобы быть более конкретным. Вот что у меня сейчас есть. Прямо сейчас, когда игра заканчивается, я получаю неперехваченную ошибку типа: Не удается прочитать свойство «стиль» null.
function gameOver() {
console.log('game over')
isGamerOver = true
while (grid.firstChild) {
grid.removeChild(grid.firstChild)
}
grid.innerHTML = score
clearInterval(upTimerId)
clearInterval(downTimerId)
clearInterval(leftTimerId)
clearInterval(rightTimerId)
if(isGamerOver = true){
document.getElementById("grid").style.backgroundImage="url('backgrounds/background-up.png')";
}else{
document.getElementById("grid").style.backgroundImage="url('backgrounds/game-over.png')";
}
}
Вот таблица стилей, которую я пытаюсь изменить
.grid {
width: 400px;
height: 600px;
background-image: url(backgrounds/background-up.png);
position: relative;
font-size: 100px;
text-align: center;
color: #fff;
}
Вот мой HTML
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="UTF-8">
<title>100% Not Doodle Jump</title>
<link rel="stylesheet" href="style.css"></link>
<script src="app.js" charset="utf-8"></script>
</head>
<body>
<div class="grid"></div>
</body>
</html>
Я также добавил div в JavaScript
const grid = document.querySelector('.grid')
const doodler = document.createElement('div')
Комментарии:
1. поделитесь каким-нибудь html-кодом , возможно, вам не хватает идентификатора
2. Вы используете
getElementById
, но у вашего CSS есть.grid
, указывающее, что «сетка» — это класс , а не идентификатор3. Хорошо, я обновил код, включив в него также мои HTML-элементы. Я изменил getElementById на getElementsByClassName, и я все еще получаю ту же неперехваченную ошибку типа
Ответ №1:
Если вы определили свою сетку таким образом:
const grid = document.querySelector('.grid')
измените это:
if(isGamerOver = true){
document.getElementById("grid").style.backgroundImage="url('backgrounds/background-up.png')";
}else{
document.getElementById("grid").style.backgroundImage="url('backgrounds/game-over.png')";
}
к этому:
if(isGamerOver = true){
grid.style.backgroundImage="url('backgrounds/background-up.png')";
}else{
grid.style.backgroundImage="url('backgrounds/game-over.png')";
}