我将如何显示从javascript到html页面的随机数学问题,但生成的数字并不仅仅显示符号
我正在尝试为孩子们创建一个数学游戏,让玩家说出他的名字,让玩家选择他正在玩的级别,我将如何将随机数学问题从javascript显示到html页面,但生成的数字不仅仅显示符号,这是我的脚本,我将它链接到html外部。 这是我的密码:我将如何显示从javascript到html页面的随机数学问题,但生成的数字并不仅仅显示符号,javascript,Javascript,我正在尝试为孩子们创建一个数学游戏,让玩家说出他的名字,让玩家选择他正在玩的级别,我将如何将随机数学问题从javascript显示到html页面,但生成的数字不仅仅显示符号,这是我的脚本,我将它链接到html外部。 这是我的密码: var pageName = location.pathname.split("/").slice(-1); window.addEventListener('load', function () { alert(pageName); randomOpr();
var pageName = location.pathname.split("/").slice(-1);
window.addEventListener('load', function () {
alert(pageName);
randomOpr();
pageAction();
});
var num1 = document.getElementById("num1");
var num2 = document.getElementById("num2");
function pageAction() {
if (pageName == "level1.html") {
num1.innerHTML = Math.floor(Math.random() * 20 + 1);
num2.innerHTML = Math.floor(Math.random() * 20 + 1);
} else if (pageName == "level2.html") {
num1.innerHTML = Math.floor(Math.random() * 30 + 21);
num2.innerHTML = Math.floor(Math.random() * 30 + 21);
} else if (pageName == "level3.html") {
num1.innerHTML = Math.floor(Math.random() * 50 + 51);
num2.innerHTML = Math.floor(Math.random() * 50 + 51);
}
}
var operators = ['+', '-', '*', '/']
var selectedOperator = Math.floor(Math.random() * operators.length);
function randomOpr() {
var operator = document.getElementById("opr");
alert((operator).value);
operator.innerHTML = operators[selectedOperator];
}
function checkMath() {
var num1 = parseInt(document.getElementById("num1").innerHTML, 10);
var num2 = parseInt(document.getElementById("num2").innerHTML, 10);
var answer = parseInt(document.getElementById("answer").value, 10);
if (operators[selectedOperator] == "+") {
if (answer === num1 + num2) {
alert("your answer is correct");
} else {
alert(answer + " is incorrect, correct answer is " + (num1 + num2));
}
} else if (operators[selectedOperator].sign == "-") {
if (answer === num1 - num2) {
alert("your answer is correct");
} else {
alert(answer + " is incorrect, correct answer is " + (num1 - num2));
}
} else if (operators[selectedOperator].sign == "*") {
if (answer === num1 - num2) {
alert("your answer is correct");
} else {
alert(answer + " is incorrect, correct answer is " + (num1 * num2));
}
} else if (operators[selectedOperator].sign == "/") {
if (answer === num1 - num2) {
alert("your answer is correct");
} else {
alert(answer + " is incorrect, correct answer is " + (num1 / num2));
}
}
document.getElementById("answer").value = "";
randomNum();
}
按照注释中的建议清理代码 不需要第二次得到问题中的数字,在生成时已经有了这些数字 无需为每个操作员重复回答检查和警报代码 什么是“登录”运算符[selectedOperator]。在四项检查中的三项中“登录”?-删除 什么是随机数删除 我还要检查除法问题的值
<body>
<div id="num1"></div>
<div id="opr"></div>
<div id="num2"></div>
<div>
<input type=text id="answer">
</div>
<button id="btnAnswer">Check answer</button>
<script>
$(function () {
$("#btnAnswer").click(checkMath)
});
// Set up re-usable variables first.
var pageName = location.pathname.split("/").slice(-1);
var operators = ['+', '-', '*', '/']
var num1 = document.getElementById("num1");
var num2 = document.getElementById("num2");
var answerInput = document.getElementById("answer");
var operator = document.getElementById("opr");
// The values of the numbers to use in the question, current Operator, and calculated answer.
var leftNumber = 0;
var rightNumber = 0;
var selectedOperator = "";
var answer = 0;
window.addEventListener('load', function () {
alert(pageName);
pageAction();
});
function pageAction() {
// Use a switch to perform the check on the level, then set the multiplier.
var multiplier = 0;
switch (pageName) {
case "level1.html":
multiplier = 20;
break;
case "level2.html":
multiplier = 30;
break;
case "level3.html":
multiplier = 50;
break;
default:
multiplier = 20;
break;
}
// Generate the numbers, set them on the page, and get a random Operator.
leftNumber = Math.floor(Math.random() * multiplier + 1);
rightNumber = Math.floor(Math.random() * multiplier + 1);
num1.innerText = leftNumber;
num2.innerText = rightNumber;
answerInput.value = "";
randomOpr();
// Calculate the answer for later use.
switch (selectedOperator) {
case "+":
answer = leftNumber + rightNumber;
break;
case "-":
answer = leftNumber - rightNumber;
break;
case "*":
answer = leftNumber * rightNumber;
break;
case "/":
answer = leftNumber / rightNumber;
break;
default:
answer = leftNumber + rightNumber;
break;
}
}
function randomOpr() {
// Set the current Operator, update the page control.
selectedOperator = operators[Math.floor(Math.random() * operators.length)];
operator.innerText = selectedOperator;
alert((operator).innerText);
}
function checkMath() {
// Check submitted answer against the calculated one, then re-run for another question.
var submittedAnswer = parseInt(answerInput.value, 10);
if (submittedAnswer === answer) {
alert("your answer is correct");
} else {
alert(submittedAnswer + " is incorrect, correct answer is " + answer);
}
pageAction();
}
</script>
</body>
添加html代码页面名是否正确匹配?添加简单的调试,并发现如果num1和num2都等于1并且是的字符串,那么num1+num2可能返回11而不是2example@pokeybitOP正在使用parseInt.FYI-除非字符串中包含HTML,否则不要使用.innerHTML,否则请使用.textContent,或者,如果要设置/获取表单字段的值,请使用.value。还有,为什么是20+1、30+21和50+51,而不仅仅是21、51和101?