我正在用html和java脚本慢慢开发游戏。当我启动“上班”按钮时,它不会添加您所获得的内容,只需将数字更改为您选择的小时数。我一直试图在我自己身上解决这个问题大约一个月
<!DOCTYPE html>
<html>
<link rel="stylesheet" type="text/css" href="icecream shop2.css">
<head>
<title></title>
</head>
<body>
<marquee> Welcome to the Happy Smells Iced-Creamery</marquee>
<button onclick="myFunction()" >Clich Here To Order An Iced-Cream</button>
<button onclick="myFunction2()" >Click here to go to work</button>
<p id="money">Money:</p>
<table>
<tbody>
<tr> <td> <h1> Available Iced-Cream Flavours <h1> </td></tr>
<tr> <td> Chocolate </td> </tr>
<tr> <td> Vanilla </td> </tr>
<tr> <td> Caramel </td> </tr>
<tr> <td> HoneyComb </td> </tr>
<tr> <td> Strawberry </td> </tr>
<tr> <td> Rainbow </td> </tr>
<tr> <td> Rocky Road </td> </tr>
<tr> <td> Rum And Raisin </td> </tr>
<tr> <td> Lemon Sorbet </td> </tr>
<tr> <td> Raspberry Sorbet </td> </tr>
<tr> <td> Mango Sorbet </td> </tr>
<tr> <td> BoysenBerry</td> </tr>
</tbody>
</table>
<script type="text/javascript" src="icecream shop2.js"></script>
<script type="text/javascript" src="work.js"></script>
</body>
</html>
JS
function myFunction2() {
var user = prompt("How many hours do you want to work? pick a number between 1 and 10")
var money = 0;
if (user == "1") {
money = money + 1 ;
document.getElementById("money").innerHTML=
"Money: " + money +"";
console.log(money)
} else if (user == "2") {
money = money + 2 ;
document.getElementById("money").innerHTML=
"Money: "+ money +"";
console.log(money)
} else if (user == "3") {
money = money + 3 ;
document.getElementById("money").innerHTML=
"Money: "+ money +"";
console.log(money)
} else if (user == "4") {
money = money + 4 ;
document.getElementById("money").innerHTML=
"Money: "+ money +"";
console.log(money)
} else if (user == "5") {
money = money + 5 ;
document.getElementById("money").innerHTML=
"Money: "+ money +"";
console.log(money)
} else if (user == "6") {
money = money + 6 ;
document.getElementById("money").innerHTML=
"Money: "+ money +"";
console.log(money);
} else if (user == "7") {
money = money + 7 ;
document.getElementById("money").innerHTML=
"Money: "+ money +"";
console.log(money);
} else if (user == "8") {
money = money + 8 ;
document.getElementById("money").innerHTML=
"Money: "+ money +"";
console.log(money);
} else if (user == "9") {
money = money + 9 ;
document.getElementById("money").innerHTML=
"Money: "+ money +"";
console.log(money);
} else if (user == 10) {
money = money + 10;
document.getElementById("money").innerHTML=
"Money: "+ money +"";
console.log(money);
} else {
alert("you chose either to few hours or to many hours")
}
}
答案 0 :(得分:1)
每次调用myFunction2()时,money var money都是新的。尝试将var放在闭包或包含myFunction2()声明的函数中。
答案 1 :(得分:0)
也就是说,因为money
是函数中的局部变量。每次调用该函数时,它都会创建一个名为money
的新变量并将其设置为0.
如果你希望money
保持其值,你应该把它放在这个函数之外:
var money = 0;
function myFunction2() { ... }
答案 2 :(得分:0)
每次调用该函数时,您都在宣布资金并为其指定零值。因此它始终从零开始,然后将输入值添加到它。在功能之外申报资金。