在javascript代码中添加一行

时间:2014-03-17 08:46:52

标签: javascript arrays

function calcPrimesLoop() {
var primes = document.getElementById('primes');
primes.appendChild(document.createTextNode(" , /n , "+this.prime.nextPrime()));
calcPrimesDelay = setTimeout('calcPrimesLoop()', this.delay);
}

好的,这是我的代码我正在显示一个素数数组。问题是我希望每个素数都是单独的,但我无法做到这一点。我试过了/ n和 但他们没有工作。它以html格式显示在textarea中。谢谢

2 个答案:

答案 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 />标记才能获得换行符!