javascript - Javascript函数不会打印
问题描述
我是 JavaScript 新手,我正在为班级做一个项目。到目前为止还没有任何问题,直到这个问题,当我输入输入时没有打印任何内容。当我输入问题时,根本没有任何变化。这个问题只是应该创建一个随机数,看看用户是否猜对了。
<script>
function playGame() {
var answer;
var x = Math.floor((Math.random() * 100) + 1);
var name = document.getElementById('name').value;
var guess = document.getElementById('guess').value;
if (x > guess) {
var answer = "Guess is too low!");
}
else if (x < guess) {
var answer = "Guess is too high!");
}
else if (x == guess) {
var answer = "You guessed correctly!");
}
document.getElementById('final').innerHTML = "Answer: " + answer;
</script>
<h2>Random Number Game by </h2>
<p>Enter Name:
<input id="name" type="text">
</p>
<p>Enter Guess: <input id="guess" type="number" min="1" max="100" onchange="playGame()"></p>
<h2 id="final"></h2>
解决方案
代码中存在语法错误。)
在if..else
语句中删除尾随的右括号。document.getElementById('final').innerHTML = "Answer: " + answer;
应该在函数内。var answer;
只需要在脚本开头声明一次。
定义x
为undefined
外playGame
,设置x
如果undefined
,当x == guess
设置x
为undefined
。
<script>
let x;
function playGame() {
var answer;
if (!x) {
x = Math.floor((Math.random() * 100) + 1)
};
var name = document.getElementById('name').value;
var guess = document.getElementById('guess').value;
if (x > guess) {
answer = "Guess is too low!";
} else if (x < guess) {
answer = "Guess is too high!";
} else if (x == guess) {
answer = "You guessed correctly!";
x = void 0;
}
document.getElementById('final').innerHTML = "Answer: " + answer;
}
</script>
<h2>Random Number Game by </h2>
<p>Enter Name:
<input id="name" type="text">
</p>
<p>Enter Guess: <input id="guess" type="number" min="1" max="100" onchange="playGame()"></p>
<h2 id="final"></h2>
推荐阅读
- java - 使用 Marshaller Extra Line 写入 xml 文件
- c# - C# 基础、从文件读取、通过写入行进行输入、保存排序、控制台应用程序
- ibm-mq - 用于捕获请求和发送响应的 MQJExplorer 工具的替代方案
- pytorch - 为什么在没有扩展的情况下加载会加载但性能会降低?
- mysql - 在不包含两个日期的情况下使用 BETWEEN 条件
- .htaccess - 禁止 url 的 htaccess 重写规则
- android - 位图图像未保存在android中
- c# - 在winform图表c#中使图表标记点覆盖x轴线
- javascript - 为什么单击侦听器不会记录用户第一次单击 div 而是每隔一次记录一次?
- javascript - 数据格式错误