function calcPrimesLoop() {
var primes = document.getElementById('primes');
primes.appendChild(document.createTextNode(" , /n , "+this.prime.nextPrime()));
calcPrimesDelay = setTimeout('calcPrimesLoop()', this.delay);
}
好的,这是我的代码我正在显示一个素数数组。问题是我希望每个素数都是单独的,但我无法做到这一点。我试过了/ n和
但他们没有工作。它以html格式显示在textarea中。谢谢
答案 0 :(得分:3)
您可以附加br
元素:
primes.appendChild(document.createElement('br'));
...虽然通常你想要这样做的方式是将素数放在某种元素容器中,你可以用CSS来适当地设置样式。一系列div
将自动垂直堆叠:
var div = document.createElement('div');
div.appendChild(document.createTextNode(/*...your prime...*/));
primes.appendChild(div);
这一行有两个注意事项:
calcPrimesDelay = setTimeout('calcPrimesLoop()', this.delay);
首先,使用setTimeout
几乎总是最好使用函数引用,而不是字符串。所以:
calcPrimesDelay = setTimeout(calcPrimesLoop, this.delay);
其次,除非你在某个地方宣布calcPrimesDelay
,否则你将会成为The Horror of Implicit Globals的牺牲品。
答案 1 :(得分:2)
您应该使用反斜杠而不是正斜杠(\n
)
编辑:以下仅适用于"正常"元素。对于textarea,你应该做primes.value += " , \n , "+this.prime.nextPrime();
此外,换行符在HTML中折叠(如果您在源代码中的多行上写文本,它会在一行中出现),但您可以修复"这使用简单的CSS:
primes.style.whiteSpace = "pre-wrap";
传播关于white-space
的消息!人们需要停止使用<br />
标记才能获得换行符!