В вашем скрипте вы вызываете
parseInt(guessField.value) // effectively that is parseInt("") when it's empty
Вызов parseInt()
с пустой строкой возвращает NaN
;
MDN в их примере использования:
var userGuess = Number(guessField.value);
Number("")
возвращает числовое значение 0.
Вам также необходимо обновлять значение userGuess
каждый раз, когда вы звоните checkGuess()
.Итак, вам нужны следующие изменения:
// ... code
var userGuess = Number(guessField.value);
// ... the rest of code
function checkGuess() {
userGuess = Number(guessField.value)
// ... rest of code
}
// rest of code
Конечно, вам не нужно использовать Number()
, вы также можете выполнить некоторую другую проверку условий, но Number()
- это элегантный способ принять любое числоили пустая строка.
ОБНОВЛЕНИЕ Новый jsbin здесь.
Для части resetGame()
: вы выбрали .resultParas
, например:
var resetParas = document.querySelectorAll('.resultParas');
Затем вы перебрали результаты этого и заменили .textContent
этих элементов.Но это были не простые текстовые узлы, это были узлы парапграфа с текстовыми узлами внутри.Я изменил это на:
var resetParas = document.querySelector('.resultParas').children;
Это должно работать!Я добавил несколько комментариев в jsfiddle для более подробного объяснения.