我试图在此处仅使用Javascript创建代码(HTML主体中没有任何内容),以便每次刷新时都会生成加起来的随机数。
我已经尝试过使用Math.random()和innerHTML,但是我认为我在错误的地方使用了它。
<body>
<div id="mathProblem">
<!-- leave this div empty!-->
</div>
<script>
let myDiv = document.getElementById("mathProblem");
var x;
var y;
var z;
x = Math.random();
y = Math.random();
z = x + y
myDiv.innerHTML = "she made"+ x "cookies but ate " + y, "she has" + z "cookies left";
document.getElementById("mathProblem").innerHTML = z;
</script>
最后,我基本上要实现的目标是,每次刷新时,X和Y变量都不相同,它们加起来等于Z,因此会产生单词问题。
答案 0 :(得分:0)
innerHTML声明中只有一些错字。
myDiv.innerHTML = "she made"+ x + "cookies but ate " + y + "she has" + z +"cookies left";
确保正确连接字符串。
您还可以使用如下所示的字符串插值:
myDiv.innerHTML = `she made ${x} cookies but ate ${y} she has ${z} cookies left`;
注意反引号``而不是双引号""
所以:
<body>
<div id="mathProblem"><!-- leave this div empty!--></div>
<script>
const myDiv = document.getElementById("mathProblem");
const x = Math.random();
const y = Math.random();
const z = x + y;
myDiv.innerHTML = `she made ${x} cookies but ate ${y} she has ${z} cookies left`;
</script>
</body>
答案 1 :(得分:0)
您遇到几个问题。首先是由于缺少一些加号,您的JavaScript未能按预期完成。接下来是您要两次分配给innerHTML
。最后,我想您正在尝试进行整数数学运算并表达逻辑上正确的句子。
请this explanation of Random阅读并检查您的代码(经过语法更正)与我的代码在this JS Fiddle之间的区别。如果您想尝试新事物,可以在那里使用JS。归结为这一变化:
let x = Math.floor(Math.random() * 10) + 1;
let y = Math.floor(Math.random() * 10) + 1;
let z = x + y;
document.getElementById("mathProblem").innerHTML = `she made ${z} cookies but ate ${y} she has ${x} cookies left`;
答案 2 :(得分:-1)
Math.random()不提供加密安全的随机 数字。不要将它们用于与安全相关的任何事情。使用网路 而是使用Crypto API,更确切地说是 window.crypto.getRandomValues()方法。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random
genRandomNumbers = function getRandomNumbers() {
var array = new Uint32Array(2);
window.crypto.getRandomValues(array);
var randText = document.getElementById("myRandText");
var resultText = document.getElementById("result");
randText.innerHTML = "The random numbers are: "
for (var i = 0; i < array.length; i++) {
randText.innerHTML += array[i] + " ";
}
resultText.innerHTML = array[0] + array[1];
}
<!-- Learn about this code on MDN: https://developer.mozilla.org/en-US/docs/Web/API/Window/crypto -->
<p id="myRandText">The random numbers are: </p>
<p id="result">
Result:
</p>
<button type="button" onClick='genRandomNumbers()'>Generate 2 random numbers and add</button>