javascript - 没有从我的对象变量中获得正确的输入

标签 javascript variables null numbers getelementbyid

我做了一些调查,看看是否能找出我的代码不起作用的原因,但我并不完全明白我应该寻找什么!

发生的情况是,当用户在文本框“playerinput”中输入猜测,然后点击提交(运行游戏功能)时,我的程序输出“您猜得太低了()。您有 4/3/2/1...猜测。”

让我抓狂的是 () 是猜测应该去的地方。由于某种原因它停留在 0(我认为)。

我的代码是否正确生成数字并正确调用它?

var NumberGame={
playerinput:document.getElementById("playerinput").value,

computernumber:0,
count:0,
output:document.getElementById("CPUoutput"),
guess:document.getElementById("guessbutton"),
randomnumber: function(){
 NumberGame.computernumber = Math.floor(Math.random() * 20) + 1;
return NumberGame.computernumber;
    }

}

function newgame() {
    window.alert("A new game has begun. Your guesses have been reset to 0, and the new number has been generated.");
    location.reload();
    }

function game() {

if (NumberGame.count===0){
    NumberGame.computernumber=NumberGame.randomnumber();
}

    if (NumberGame.playerinput < NumberGame.computernumber)
{
    NumberGame.count++;
    NumberGame.output.innerHTML = "You have guessed too low. (" + NumberGame.playerinput + ") You have used up " + NumberGame.count + " guesses.";
}
    else if (NumberGame.playerinput > NumberGame.computernumber) 
{
   NumberGame.count++;
    NumberGame.output.innerHTML = "You have guessed too high. (" + NumberGame.playerinput + ") You have used up " + NumberGame.count + " guesses.";

}
    else if (NumberGame.playerinput === NumberGame.computernumber) 
{
    NumberGame.output.innerHTML = "<h1>You Win!</h1>";
        newgame();

}
    if (NumberGame.count === 5)
{
    NumberGame.output.innerHTML = "<h1>You Lose!</h1>";
    newgame();

}


}

已更新:根据要求,这是 HTML。将尝试您的一些建议。但有一些我不明白的事情,需要更多的研究。

<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>KevinPietteProject1</title>
<link rel="stylesheet" type="text/css" href="mycss.css">

</head>
<body>


    <div id="gamebody">
        <h1>-- Number Guessing Game -- 
    </h1>
<p >Guess the number between 1-20.</p>
<input id="playerinput" type="text" maxlength="2" autofocus size="4" />
<br>
<input type="button" id="guessbutton" value="Guess!" onClick="game()"/>
<br>
<input type="button" value="New Game" onclick="newgame();" />
<p>
    The object of the game is to guess what number the computer is thinking of.<br> The number is always between 1 and 20. Everytime you win, lose, or hit the new game button, a new number is generated. <br> Every new game, you begin with 5 guesses.

    <br>
        <div id="imagediv">
            <img id="thepicture" src="Images/neutral.png" height="120" width="120">
        </div>
    <br>


                <div id="Guessesleft">
                </div>


    </p>

            <div id="CPUoutput">
            </div>
    </div> 

<script src="rewrittenscript.js">
// Here, I've put the script at the bottom of the page so the DOM loads in the right order
</script>


</body>
</html>

最佳答案

您可以使用

onkeyup=""

在你的html中

onkeyup="NumberGame.playerinput = this.value"

我根本看不到您何时调用 NumberGame,但如果您仅在提交时运行 game(),则应该将 NumberGame 合并到您调用的函数中!

或者尝试写

playerinput : function() {return parseInt(document.getElementById("playerinput").value),10}();

然后每次调用时该值都会更新

NumberGame.playerinput

关于javascript - 没有从我的对象变量中获得正确的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20364713/

相关文章:

javascript - 如何将日期选择器插入 jquery 向导中?

javascript - EaselJS( Sprite 动画不会在对 Angular 线方向播放)

javascript - 如何手动通过 Youtube API 发送消息?

php - 设置公共(public)类变量

javascript - 什么时候使用 __proto__ 什么时候使用原型(prototype)

javascript - Rails 4 - 通过 ajax 在引导模式中显示数据

python - 在 Pythonic while 循环中执行迭代名称/变量的替代方法

c++ - 空参数检查 C++

java - 将空值传递给方法时自动抛出 IllegalArgumentException

c - C 中的 NULL 值和 "0"字符串?