如何在javascript中使用for循环语句中的变量?

时间:2017-04-02 18:42:30

标签: javascript html5 for-loop

所以我试图让这个掷骰子等于指定的输入量。为实现这一目标,我使用了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>

4 个答案:

答案 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)

&#13;
&#13;
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;
&#13;
&#13;