#javascript
#javascript
Вопрос:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Speed typing game</title>
<script src="speed.js" defer></script>
<link rel="stylesheet" href="speed.css">
</head>
<body>
<input type="button" value="Start game!" class="button">
<div class="letter">A</div>
<div></div>
</body>
</html>
как я решаю эту ошибку, она находится в строке 59, чтобы вы знали, где она находится, должен ли я присваивать значение букве, которую я пробовал, но это не сработало?
speed.js:59 Uncaught TypeError: Cannot set property 'top' of undefined at speed.js:59
let max=10
var letter= 'A'
let color="purple"
let right='right'
var top='top'
var startbutton=document.querySelector('input[type=button]')
startbutton.addEventListener("click",startgame)
// start the game with a random number,hide the button//
function startgame() {
startbutton.classList.add("hidden")
let interval = 1000
setInterval(createNewLetter,interval);
}
/*generate random number between 1-8 */
function randomNumber(min,max) {
return Math.floor(Math.random() * ( max 1))
}
// generate a random letter //
function randomLetter() {
//generam un cod Ascii intre 65('A') si 90('Z') //
let codeofA= "A".charCodeAt(0);
let codeofZ= "Z".charCodeAt(0)
let randomCode= randomNumber(codeofA, codeofZ);
// convertim codul ascii in caracterul asociat lui //
return String.fromCharCode(randomCode)
}
// genereaza o culoare aleatorie //
function randomColor() {
let red = randomNumber(0,255)
let green = randomNumber(0,255)
let blue= randomNumber(0,255)
return 'rgb(${red},${green},${blue})'
}
// genereaza o pozitie aleatorie intre 0% si 90% //
function randomPosition() {
let position = randomNumber(0,90)
return '${position}%'
}
// creaza un nou element div cu o litera aleatorie //
// adaugarea elementului in html//
function createNewLetter() {
let letter = randomLetter()
let color= randomColor()
let top = randomPosition()
let right= randomPosition()
}
// cream un nou element div //
let div = document.createElement("div")
// adaugam o clasa letter //
div.classList.add("letter")
//adaugam un nou stil si o noua culoare literei //
div.style.backgroundColor = randomColor
// adaugam o pozitie literei //
div.Style.top = top
// pozitionam litera //
div.Style.right = right
// cream un element body //
document.querySelector("body").appendChild(div)
Ответ №1:
Обновить:
Необходимо заменить
div.classlist.add("letter")
с
div.classList.add("letter")
Ошибка говорит о том, что любой элемент, к которому вы пытаетесь добавить, в строке 54 не определен.
Глядя на ваш код, это либо startbutton, либо div, это единственные элементы, с которыми связано «добавить».
Можете ли вы опубликовать полный файл, чтобы мы могли видеть, что находится в строке под номером 54?
Комментарии:
1. Вы можете просто опубликовать его в комментарии или отредактировать описание, чтобы включить полный Javascript. Если вы заметили, ваше форматирование неверно для приведенного выше фрагмента кода. Попробуйте отредактировать это форматирование так, чтобы весь код был правильно отформатирован и включал весь файл целиком, чтобы мы могли точно видеть, что находится в каждой строке.
2. udrop.com/4Vxy/speed.js помогает ли это?
3. Похоже, у вас есть div.classlist вместо div.classList (обратите внимание, что «L» пишется с большой буквы) div.classlist.add(«буква») должно быть: div.classList.add(«буква»)
4. Еще одна проблема, с которой вы столкнетесь, как только исправите это, «color» не определен, потому что ваша переменная color объявлена в функции createNewLetter(), но вы пытаетесь получить к ней доступ за пределами функции.
5. Ошибка Uncaught TypeError: не удается установить свойство ‘top’ для undefined на скорости.js:56 это сработало, но теперь я получаю эту ошибку, как я это решаю?, я попытался придать этому RandomColor, но, похоже, он все еще не добавляет цвет