程序生成0到1500之间的随机数,并将其存储在rndnum
中,您有10个猜测,游戏会告诉您数字是高还是低。当你开始游戏时,在顶部,它表示"你的号码在0(lownum)和1500(highnum)之间"我希望这些能够随着你的猜测而改变。
问题在于,当您猜测数字<= 1000且正确答案较高时,上述文本保持不变,尽管程序知道数字介于参数之间。
if (inputnum.value > lownum && inputnum.value < rndnum) {
lownum = inputnum.value
} else if (inputnum.value < highnum && inputnum.value > rndnum) {
highnum = inputnum.value
}
choosedif.innerHTML = "Your number is between " + lownum + " and " + highnum;
编辑:完整代码(https://pastebin.com/VtaFMVS8)
答案 0 :(得分:0)
我会猜测并且说你只是在你希望它被执行多次时才执行此动作一次。给出的代码片段没有任何问题,但它并没有说明完整的故事。
不幸的是,你必须明确告诉浏览器该做什么以及何时做。它不会自动更新您的HTML,除非您告诉它。 Javascript的DOM操作方面主要是事件驱动的系统。
您需要某种触发器,例如按下按钮,输入框中的值被更改,或者为了执行某项功能而可能发生的任何其他事情。在下面的示例中,我们将changeValue
函数绑定到按钮的onClick event。单击该按钮后,只有单击该按钮,changeValue
函数才会运行您的代码段,从而更新html。
// set up initial numbers
lownum = 0;
highnum = 1000;
rndnum = Math.floor(Math.random()*highnum)
// get elements
inputnum = document.querySelector("#inputnum")
choosedif = document.querySelector("#choosedif")
function changeValue(){
if (inputnum.value > lownum && inputnum.value < rndnum) {
lownum = inputnum.value
} else if (inputnum.value < highnum && inputnum.value > rndnum) {
highnum = inputnum.value
}
inputnum.value = "" // clear input box
choosedif.innerHTML = "Your number is between " + lownum + " and " + highnum;
}
changeValue();
&#13;
<input id="inputnum" type="number"/>
<button onclick="changeValue()">Guess</button>
<div id="choosedif"></div>
&#13;