Javascript没有完成循环

时间:2016-03-17 16:42:49

标签: javascript html google-chrome safari

我的程序应该从第一段开始复制,复制100次并将其放入第二段。但是当我做这个功能时:

<html>
<body>

<p id="first">First</p>
<p id="second">Second</p>

<script>
var i;
var word = document.getElementsByTagName('p')[0].innerHTML;
document.writeln(word); //Did this to check if it copied "first" correctly.
for (i=0; i<100; i++){
    word+=word;
    document.write(i) //Did this to see how man time it loops
}
document.getElementById("second").innerHTML = word;
</script>

</body>
</html>

它在Safari中返回(仅循环27次):

First
Second
First 0123456789101112131415161718192021222324252627

并在Chrome中返回此内容(仅循环24次):

First
Second
First 0123456789101112131415161718192021222324

谢谢!

2 个答案:

答案 0 :(得分:1)

您的程序现在正在尝试使第二段包含2 ^ 100次&#34; First&#34;,因为您复制了重复项,在第一个循环之后您有2 *&#34; First&#34; 34;,然后4 *&#34;第一&#34;这显然会带来记忆问题。如果你想让第二段只包含100次&#34; First&#34;你可以使用:

<script>
document.getElementById("second").innerHTML = 
document.getElementById("first").innerHTML.repeat(100)
</script>

答案 1 :(得分:0)

你误认为那条线。您添加word而不是必须添加&#39; i&#39;。 所以它应该是这样的:

word+=i;