js不改变变量的值

时间:2017-04-19 00:10:51

标签: javascript html

我正在用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")

    }
   }

3 个答案:

答案 0 :(得分:1)

每次调用myFunction2()时,money var money都是新的。尝试将var放在闭包或包含myFunction2()声明的函数中。

答案 1 :(得分:0)

也就是说,因为money是函数中的局部变量。每次调用该函数时,它都会创建一个名为money的新变量并将其设置为0.

如果你希望money保持其值,你应该把它放在这个函数之外:

var money = 0;
function myFunction2() { ... }

答案 2 :(得分:0)

每次调用该函数时,您都在宣布资金并为其指定零值。因此它始终从零开始,然后将输入值添加到它。在功能之外申报资金。