По какой-то причине арифметика в функции updateScore(result)
не работает должным образом (функция вызывается позже в коде). wins
, ties
и losses
напечатаны как следует, но lives
напечатан как NaN. Я знаю, что такое NaN. Я также определил, что переменные по той или иной причине создаются как строки. Мне кажется странным, что он работает для четырех из пяти переменных. Нет никакой последовательности. Я пробовал некоторые преобразования чисел, используя Number(lives)
, но это тоже не работает. Любые предложения о том, как я могу гарантировать, что переменные будут созданы как числа, и аритмические операции будут работать?Арифметика с переменными не работает
var wins = 0,
ties = 0,
losses = 0,
lives = 5,
previouscpuChoice = 0;
$("#startknapp").click(function(){
var spiller = prompt("Hva heter du?");
$("#userSelect").html(userMenu);
$("#result").html("<h4>Velg figur, " + spiller + "</h4>");
$("#status").html('<h4>Liv: <span id="life">' +lives+ '</span> - Seire: <span id="win">' + wins + '</span> - Uavgjort: <span id="tie">' + ties + '</span> - Tap: <span id="lose">' + losses + '</span>');
console.log(typeof "lives");
console.log(typeof "wins");
});
function updateScore(result) {
tie = document.getElementById("tie");
win = document.getElementById("win");
lose = document.getElementById("lose");
lives = document.getElementById("life");
console.log(typeof "wins");
var imgSrc = "images/" + userChoice + "-" + result + ".png";
if (result === "tie") {
ties = ties + 1;
tie.innerHTML = ties;
$('.result-img').attr('src', 'images/tie.png');
}
if (result === "vant") {
wins++;
$('.result-img').attr('src', imgSrc);
}
if (result === "tapte") {
losses++;
lives--;
lose.innerHTML = losses;
life.innerHTML = lives;
$('.result-img').attr('src', imgSrc);
}
};
_getElementById_ возвращает ** элемент DOM **, а не значение ввода Я бы посоветовал вам не писать на Vanilla JS на данный момент, вместо этого используйте JS-библиотеку, например jQuery. – hindmost