Javascript 如何使用document.write-in setTimout而不清除以前的文本

Javascript 如何使用document.write-in setTimout而不清除以前的文本,javascript,delay,settimeout,document.write,Javascript,Delay,Settimeout,Document.write,我想在两个文档之间创建延迟。写入s。我使用了setTimeout来执行此操作,但一旦执行,它就会覆盖上一个文本。我想能够显示文本,等待一些延迟,在它下面显示一些其他文本,而不删除任何以前的文本。此代码附加到一个空HTML文件。此外,我还没有成功地使用实现这一点 var numOfDice = prompt("How many dice?"); var numOfSides = prompt("How many sides on these dice?"); var rollDice = fun

我想在两个
文档之间创建延迟。写入
s。我使用了
setTimeout
来执行此操作,但一旦执行,它就会覆盖上一个文本。我想能够显示文本,等待一些延迟,在它下面显示一些其他文本,而不删除任何以前的文本。此代码附加到一个空HTML文件。此外,我还没有成功地使用

实现这一点

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);
var numodice=prompt(“多少个骰子?”);
var numOfSides=prompt(“这些骰子上有多少面?”);
var rollDice=函数(numodice){
var-rollResults=[];
for(var i=0;i
首先,看看为什么不应该使用
文档。编写

然后,在您理解了为什么使用document.write是不好的做法之后,您可以用
元素.appendChild
替换它

有关该功能的更多信息,请访问

代码示例:

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);
var numodice=prompt(“多少个骰子?”);
var numOfSides=prompt(“这些骰子上有多少面?”);
var rollDice=函数(numodice){
var-rollResults=[];
for(var i=0;i
请注意,这段代码将在新行上显示每个掷骰子,因为我正在为每个掷骰子创建一个新的p元素。如果希望它们显示在同一行上,请创建一个p元素,然后在while循环中,将rollresult附加到该p元素'innerHTML'上
.

不要使用
document.write()
。取而代之的是使用DOM。“如何在不清除前一个文本的情况下使用document.write-in-setTimout”简短的回答是:你不能。