我想在两个document.write
S之间创建一个延迟。我曾经setTimeout
这样做,但是一旦执行,它就会覆盖之前的文本。我希望能够显示文本,稍等片刻,在其下方显示其他文本,而不会删除任何先前的文本。此代码将附加到否则为空的HTML文件中。另外,我在使用上还没有成功<br>
。
var numOfDice = prompt("How many dice?");
var numOfSides = prompt("How many sides on these dice?");
var rollDice = function(numOfDice) {
var rollResults = [];
for (var i = 0; i < numOfDice; i++) {
rollResults[i] = Math.floor((Math.random() * numOfSides) + 1);
}
return rollResults;
}
var printResults = function() {
var i = 0;
while (i < rollResults.length - 1) {
document.write(rollResults[i] + ", ");
i++;
}
document.write(rollResults[i]);
}
alert("Roll the dice!");
var rollResults = rollDice(numOfDice);
printResults();
setTimeout(function() {document.write("These numbers...")}, 1000);
首先,请看一下这个答案,为什么您不应该使用document.write
。
然后,在了解了为什么使用document.write是不好的做法之后,可以将其替换为element.appendChild
。
有关该功能的更多信息,请访问Mozilla开发网络。
代码示例:
var numOfDice = prompt("How many dice?");
var numOfSides = prompt("How many sides on these dice?");
var rollDice = function(numOfDice) {
var rollResults = [];
for (var i = 0; i < numOfDice; i++) {
rollResults[i] = Math.floor((Math.random() * numOfSides) + 1);
}
return rollResults;
}
var printResults = function() {
var i = 0;
while (i < rollResults.length - 1) {
var node = document.createElement("p");
node.innerHTML = rollResults[i] + ", ";
document.querySelector("body").appendChild(node);
i++;
}
var node = document.createElement("p");
node.innerHTML = rollResults[i];
document.querySelector("body").appendChild(node);
}
alert("Roll the dice!");
var rollResults = rollDice(numOfDice);
printResults();
setTimeout(function() {
var node = document.createElement("p");
node.innerHTML = "These numbers...";
document.querySelector("body").appendChild(node);
}, 1000);
请注意,此代码将在新行上显示每个掷骰子,因为我为每个掷骰子创建了一个新的p元素。如果希望它们出现在同一行上,请创建一个p元素,然后在while循环中,将rollresult追加到该p元素“ innerHTML”。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句