如何在每次获胜时添加+1以赢得计数器?

时间:2014-02-15 11:28:24

标签: javascript

我试图在每次胜利时为胜利计数器添加+1,但无论我尝试什么都不行。

HTML:

<!DOCTYPE html>
<html>  
<head>
<title></title>

<link rel="stylesheet" type="text/css" href="mycss.css">
<script src="myjavascript2.js" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

</head>

<body>
<div id="center">
<button onclick="myFunction1()">Play</button>

<p id="rolled">You rolled:</p>
<p id="test"></p>



<p id="rolled1">Your opponent rolled:</p>
<p id="test1"></p>
<p id="test2"></p>
<p id="test3"></p>

<br><br><br>

<span>Wins:</span><span id="span1"></span><br>
<span>Losses:</span><span id="span2"></span><br>
<span>Draws:</span><span id="span3"></span>
</div>

</body>
</html>

Javascript:

var things = [ 'rock', 'paper', 'scissors'];

function myFunction1() {

var random1 = Math.floor((Math.random()*things.length));
var random2 = Math.floor((Math.random()*things.length));

document.getElementById("test").innerHTML=things[random1];
document.getElementById("test1").innerHTML=things[random2];
document.getElementById("test2").innerHTML='';
document.getElementById("test3").innerHTML='';

document.getElementById("span1").innerHTML=win;
document.getElementById("span2").innerHTML=loss;
document.getElementById("span3").innerHTML=draw;

if (random1 == random2) {

document.getElementById("test2").innerHTML="<h3>It's a draw.</h3>";
}   

else if (random1 == 0 && random2 == 2) {

document.getElementById("test3").innerHTML="You win!";
}

else if (random1 == 1 && random2 == 0) {

document.getElementById("test3").innerHTML="You win!";
}

else if (random1 == 2 && random2 == 1) {

document.getElementById("test3").innerHTML="You win!";
}

else if (random1 == 0 && random2 == 1) {

document.getElementById("test3").innerHTML="You lost!";
}

else if (random1 == 1 && random2 == 2) {

document.getElementById("test3").innerHTML="You lost!";
}

else if (random1 == 2 && random2 == 0) {

document.getElementById("test3").innerHTML="You lost!";
}



var test3 = document.getElementById("test3");
var win = 0;
var loss = 0;
var draw = 0;

这里是我想在每次胜利时为胜利计数器添加+1的地方,但我无法让它发挥作用。我试过这个:

if (test3.innerHTML == "You win!") {

document.getElementById("span1").innerHTML=win + 1;


}

此:

if (test3.innerHTML == "You win!") {

document.getElementById("span1").innerHTML=win++;


}

而且:

if (test3.innerHTML == "You win!") {

win = win + 1;


}

} //End of myFunction1

我到底做错了什么?

3 个答案:

答案 0 :(得分:1)

您没有在函数外声明变量,使用win默认值声明函数外的0变量。例如: -

var win = 0;

function myFunction1() {
   if (test3.innerHTML == "You win!") {

   win = win + 1;
   ....

<强>更新 这是固定版本DEMO

答案 1 :(得分:0)

定义var win = 0;在函数之外,因为现在你的win变量正在函数中创建并在函数结束时死亡。

你可以做的另一件事是:在函数内部将它添加到顶部:

var win=parseInt(document.getElementById('span1').innerText);

答案 2 :(得分:0)

test3定义的吗?

if (test3.innerHTML == "You win!") {
}

如果没有,请使用

if (document.getElementById("test3").innerHTML == "You win!") {
}