DOM - 为操作分配随机数

时间:2017-08-26 05:15:08

标签: javascript dom random png

我正在尝试使用函数来重复单独的eventListener的代码。事件监听器仅执行一次处理。 while循环打算完成这个过程' num'倍。虽然eventListener按钮有效,但会分配"骰子 - " +骰子+" .png"正确并显示相应的图形文件,而while循环则没有。它生成一个随机的.png文件,并显示此num次,即使每次迭代确实产生一个新的随机数。我已经分别为每个案例命名变量以避免混淆。

document.querySelector(".btn-roll").addEventListener("click", function() {
    //1. Rnd number
    dice = Math.floor(Math.random() * 6) + 1;

    //2. Display the result
    var diceDOM = document.querySelector(".dice");
    diceDOM.style.display = "block";
    diceDOM.src = "dice-" + dice + ".png";
    console.log(diceDOM);
});

//roll dice num times
function rollDice(num) {
    var i = 1;
    var dice2 = 0;
    while (i < num) {
        //1. Rnd number
        dice2 = Math.floor(Math.random() * 6) + 1;
        console.log("Dice: " + dice2); //error checking. dice2 is producing new number each loop iteration

        //update diceDOM with new dice value
        var diceDOM2 = document.querySelector(".dice");
        diceDOM2.style.display = "block";
        diceDOM2.src = "dice-" + dice2 + ".png";
        console.log(diceDOM2); //error checking. diceDOM appears to be set on calling loop fist time (not set by dice var, but an alternative random number)
        i++;
    };
};

1 个答案:

答案 0 :(得分:0)

找到错误 - 或者,没有实际的错误。

为了查看发生的更改,diceDOM2.src需要专门用于控制台记录。由于某些原因,控制台打印整个对象确实提供了更新的src!

相关问题