Javascript 需要更改变量值以更改显示的消息的帮助吗

Javascript 需要更改变量值以更改显示的消息的帮助吗,javascript,function,button,var,Javascript,Function,Button,Var,我不熟悉Javascript、HTML和CSS,所以我一直在玩很多新函数、对象、样式、标记等 我在学习一些基础数学。功能,并决定尝试和创造一个生活系统,供将来参考,如果我曾经做过一个游戏 我希望这两个按钮一次将寿命变量提高和降低1。我的两个问题是变量值在单击时没有改变,并且消息显示与lives变量不对应,即使在值改变之后也是如此。我认为这是因为在运行lifetest()函数后,它会显示必要的消息,但不会再次检查或运行它 <html> <head> <titl

我不熟悉Javascript、HTML和CSS,所以我一直在玩很多新函数、对象、样式、标记等

我在学习一些基础数学。功能,并决定尝试和创造一个生活系统,供将来参考,如果我曾经做过一个游戏

我希望这两个按钮一次将寿命变量提高和降低1。我的两个问题是变量值在单击时没有改变,并且消息显示与lives变量不对应,即使在值改变之后也是如此。我认为这是因为在运行lifetest()函数后,它会显示必要的消息,但不会再次检查或运行它

<html>
<head>
    <title>Math Page</title>
</head>
<link href="main.css" rel="stylesheet" type="text/css">

<body>

<button onclick="mathstuff()">Random number 1-10 (with math.floor </button>
<p id="demo"></p>
<button onclick="mathstuff2()">Random number 0-1 (with math.random</button>
<p id="demo2"></p>
<br>
 <p>Please input a number 1-10</p>
<input id="numb" type="text">
<button type="button" onclick="onetoten()">Submit</button>
<p id="displayonetoten"></p>
<br>
<button type="button" style="position: absolute; right: 0;" onclick="lives+=" id="uplife">Click to increase life by 1</button>
<br>
<p align="right"></p>
<p align="right" id="livestext">LIVES</p>
<button type="button" style="position: absolute; right: 0" onclick="lives-=" id="downlife">Click to decrease life by 1</button>
<br>
<p id="endingmessage"></p>
<script language="javascript"> 

function mathstuff() {
var x = Math.floor((Math.random() * 10) + 1);
document.getElementById("demo").innerHTML = x;
}
function mathstuff2() {
var x = Math.random();
document.getElementById("demo2").innerHTML = x;
}
function onetoten() {
var x, text;
//get the value of input with id "numb"
x = document.getElementById("numb").value;

//if x is not a number or is less than one or greater than 10
if (isNaN(x) || x < 1 || x > 10){
    text="Not A Valid Input";
}

else {
    text="A Valid Input"
}
document.getElementById("displayonetoten").innerHTML=x+" is "+text;
}


/* function gainloselife(){

increase/decrease lives
function gainlife(){
lives += 1;
}

function loselife(){
lives -= 1;
} */

var lives = 1;

//lives testing
function lifetest(){ 
var message;
if (isNaN(lives) || lives < 0){
//endgame();
message="You are out of lives. Better luck next time. Press Restart to try again.";
}
else {
message="You have at least a life left";
}     document.getElementById("endingmessage").innerHTML=message;
}
lifetest(); 

document.getElementById(livestext).innerHTML=lives;
}






</script>
</body>
</html>

数学页
随机数1-10(含数学)

随机数0-1(带math.Random


请输入数字1-10

提交


单击以增加1的寿命

生命

单击可将寿命减少1

函数mathstuff(){ var x=数学地板((数学随机()*10)+1); document.getElementById(“demo”).innerHTML=x; } 函数mathstuff2(){ var x=Math.random(); document.getElementById(“demo2”).innerHTML=x; } 功能性单极子(){ 变量x,文本; //获取id为“numb”的输入值 x=document.getElementById(“numb”).value; //如果x不是一个数字或小于1或大于10 如果(isNaN(x)| | x<1 | | x>10){ text=“不是有效的输入”; } 否则{ text=“有效输入” } document.getElementById(“displayonetoten”).innerHTML=x+“是”+文本; } /*函数gainloselife(){ 增加/减少寿命 函数gainlife(){ 寿命+=1; } 函数寿命(){ 寿命-=1; } */ var=1; //生命测试 函数lifetest(){ var消息; 如果(isNaN(生存)| |生存<0){ //结束游戏(); message=“您已失去生命。祝您下次好运。请按“重新启动”再试一次。”; } 否则{ message=“你至少还有生命”; }document.getElementById(“endingmessage”).innerHTML=message; } 寿命试验(); document.getElementById(livestext.innerHTML=lives; } 是的,你说得对

您正在更新JavaScript中的值,但HTML未更新

你也必须更新HTML,它可以通过多种方式完成

  • 更新HTML onclick
  • 重复检查更改并更新HTML。使用

  • 目的.观察—


  • 你的javascript乱七八糟,下面我已经解决了其中的问题

    mathstuff = function(){
    var x = Math.floor((Math.random() * 10) + 1);
    document.getElementById("demo").innerHTML = x;
    }
    mathstuff2 = function() {
    var x = Math.random();
    document.getElementById("demo2").innerHTML = x;
    }
    onetoten = function() {
    var x, text;
    //get the value of input with id "numb"
    x = document.getElementById("numb").value;
    
    //if x is not a number or is less than one or greater than 10
    if (isNaN(x) || x < 1 || x > 10){
        text="Not A Valid Input";
    }
    else {
        text="A Valid Input";
    }
    
    document.getElementById("displayonetoten").innerHTML=x+" is "+text;
    }
    
    
    //function gainloselife(){
    
    var lives = 1;
    //increase/decrease lives
    gainlife = function(){
    lives++;
        lifetest();
    }
    
    loselife = function(){
    lives--;
        lifetest();
    }
    //lives testing
    lifetest = function(){ 
    var message;
    if (isNaN(lives) || lives < 0){
    //endgame();
    message="You are out of lives. Better luck next time. Press Restart to try again.";
    }
    else {
    message="You have at least a life left";
    }
        document.getElementById("endingmessage").innerHTML=message;
        document.getElementById('livestext').innerHTML=lives;
    }
    
    lifetest(); 
    
    mathstuff=function(){
    var x=数学地板((数学随机()*10)+1);
    document.getElementById(“demo”).innerHTML=x;
    }
    mathstuff2=函数(){
    var x=Math.random();
    document.getElementById(“demo2”).innerHTML=x;
    }
    一通=功能(){
    变量x,文本;
    //获取id为“numb”的输入值
    x=document.getElementById(“numb”).value;
    //如果x不是一个数字或小于1或大于10
    如果(isNaN(x)| | x<1 | | x>10){
    text=“不是有效的输入”;
    }
    否则{
    text=“有效输入”;
    }
    document.getElementById(“displayonetoten”).innerHTML=x+“是”+文本;
    }
    //函数gainloselife(){
    var=1;
    //增加/减少寿命
    gainlife=函数(){
    生活++;
    寿命试验();
    }
    生命=功能(){
    生命--;
    寿命试验();
    }
    //生命测试
    lifetest=函数(){
    var消息;
    如果(isNaN(生存)| |生存<0){
    //结束游戏();
    message=“您已失去生命。祝您下次好运。请按“重新启动”再试一次。”;
    }
    否则{
    message=“你至少还有生命”;
    }
    document.getElementById(“endingmessage”).innerHTML=message;
    document.getElementById('livestext')。innerHTML=lives;
    }
    寿命试验();
    

    这是一个正在工作的JSFIDLE

    谢谢@Ammuadu,我知道++和-,是一个的间隔更改,但我不确定您是否可以只做(变量)++或(变量)--函数内部。至于函数的命名,在定义函数之后,名称或名称与函数之间是否存在实际的结构差异,或者是相同的,只是使用或组织?实际上,在我的代码中,我已将其更改为函数表达式,这意味着函数存储在一个变量中,该变量可以在以后使用不需要,但最好使用函数声明,因为有些代码出现错误,我一个接一个地更改了您的代码。我主要使用函数表达式,因为我通常在脚本中使用名称空间。有关函数的更多信息,感谢您提供的链接和解释。重复检查对中的其他函数和任务肯定有用未来!!