由于某种原因,函数updateScore(result)
中的算术不能正常工作(稍后在代码中调用该函数)。 wins
,ties
和losses
按原样打印,但lives
打印为 NaN 。我知道 NaN 的含义。我还发现,由于某种原因,变量是作为字符串创建的。对我来说似乎很奇怪的是,它为五个变量中的四个工作。没有一致性。我已尝试使用Number(lives)
进行一些数字转换,但这也无效。有关如何确保将变量创建为数字的任何建议,以及aritmethic操作是否有效?
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);
}
};
答案 0 :(得分:1)
您是否尝试过以下操作?
var tie = parseInt(document.getElementById("tie").value);
您当前的代码:
document.getElementById("tie")
检索DOM元素而不是输入值。因此您需要使用.value
,然后将其解析为整数,因为输入值可能是您想要的数字的字符串表示,而不是整数值。
答案 1 :(得分:1)
在思考之后,我认为如果变量是字符串就可以,并从不同的角度看代码。你知道什么,这是一个简单的错误。
$("#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");
life = document.getElementById("life");
最初updateScore(结果)的最后一行是:
lives = document.getElementById("life");
结果两个变量混合(本地一个用于函数(生命)和全局一个(生命)。所以最后它是一个错字。但是,我仍然被一个变量的事实所吸引可以是一个字符串,并且该值包含在整数中。