所以我试图让这个掷骰子等于指定的输入量。为实现这一目标,我使用了for循环,但它无法正常工作。 我刚刚开始编码,我不知道为什么。有人可以帮忙吗?
<!DOCTYPE html>
<html>
<body>
<input type="number" id="diceamount" value="1">
<button onclick="FirstFunction()">Roll!</button>
<p id="display"></p>
<script>
var random = [];
document.getElementById("display").innerHTML = random;
a = document.getElementById("diceamount").innerHTML;
function FirstFunction() {
for (i=0; i<"a"; i++) {
x = Math.floor(Math.random() * 4) + 1;
random.push(x);
document.getElementById("display").innerHTML = random;
}
}
</script>
</body>
</html>
答案 0 :(得分:2)
这是你如何做到的。评论中突出显示了几个问题:
function FirstFunction() {
// Reset array within this function
var random = [];
// Get value property, and convert to number (with +)
// And use var!
var a = +document.getElementById("diceamount").value;
// No quotes around a, and use var!
for (var i=0; i<a; i++) {
// Use var!
var x = Math.floor(Math.random() * 4) + 1;
random.push(x);
}
// Only show after the loop, and use textContent
document.getElementById("display").textContent = random;
}
<input type="number" id="diceamount" value="1">
<button onclick="FirstFunction()">Roll!</button>
<p id="display"></p>
请注意,当您显示数组时,数组会被隐式格式化为逗号分隔值字符串。
答案 1 :(得分:1)
这不是您定义"a"
的方式。
您就是这样做的:
for (i=0; i<a; i++) {
这是从文本字段中获取值的方法:
var b = document.getElementById('textbox_id').value;
然后得到整数值:
var a = parseInt(b);
然后是for循环:
for (i=0; i<a; i++) {
答案 2 :(得分:0)
看来你做错了,......
假设您想要获取id =“diceamount”的输入值 所以你必须将输入的值存储在变量中。
var a = document.getElementById('diceamount').value;
for(i = ; i<= a; i++){
your code
}
提出这个问题;并寻找一些javascript教程
答案 3 :(得分:0)
var random = [];
// not useful? but in your code
document.getElementById("display").innerHTML = random;
function FirstFunction(event) {
// get local value into a and use it the + avoids parseInt
let a = Math.abs(+document.getElementById("diceamount").value);
for (i=0; i<a; i++) {
// x was not declared and should be
let x = Math.floor(Math.random() * 4) + 1;
random.push(x);
}
// could be textContent instead...outside loop
document.getElementById("display").innerHTML = random;
}
&#13;
<input type="number" id="diceamount" value="1">
<button onclick="FirstFunction()">Roll!</button>
<p id="display">x</p>
&#13;