2016-11-10 117 views
0

我有一个可打印出所有素数1 - 100的javascript,并且我使用innerHTML来打印输出结果。我的控制台给我的数字列表,但innerHTML给我一个单一的数字。 100我想。我如何显示数字列表的方式与我在控制台中打印的方式相同,但在ID =“prime”的div内?在屏幕上显示我的console.log

这里是我写的

for (var i = 1; i <= 100; i++) { 
    var invalid = false; 

    for (var j = 2; j <= i; j++) { 

     if (i % j===0 && j !== i) { 
      invalid = true; 
     } 
    } 

    if (invalid === false) { 
     console.log(i); 
    } 
} 
document.getElementById('prime').innerHTML = i; 

我的事业部

<div id="prime"> </div> 

我的控制台。OUPUTS 1,2,3,5,7,11,97 ...但我的DIV输出101

这里是一个CODEPEN

感谢

+1

请包括[MCVE]在问题本身,而不是第三方网站。使用Stack Snippets功能非常简单... –

+1

'我的控制台输出1,2,3,5,7,11,... 97但我的div输出101' - 因为这正是你编码的 –

回答

2

您的代码位置错误。对于初学者来说,把它像这样:

if (invalid === false) { 
    console.log(i); 
    document.getElementById('prime').innerHTML = i; 
} 

此外,如果您使用的代码,它只会显示i最后值。为了解决这个问题,使用+=代替=

if (invalid === false) { 
    console.log(i); 
    document.getElementById('prime').innerHTML += i + " | "; 
} 

最后,我想补充一本线(“|”)的i后面,使数sepetations清楚。

+0

这就是钱射击!谢谢! – LOTUSMS

1

您应该在循环中的每个步骤更新innerHTML,而不是仅在最后。你还应该追加每个新号到现有的内容,而不是覆盖它:

document.getElementById('prime').innerHTML += ' ' + i; 
2
document.getElementById('prime').innerHTML += i; 

for (var i = 1; i <= 100; i++) { 
 
    var invalid = false; 
 

 
    for (var j = 2; j <= i; j++) { 
 

 
     if (i % j===0 && j !== i) { 
 
      invalid = true; 
 
     } 
 
    } 
 

 
    if (invalid === false) { 
 
     console.log(i); 
 
     document.getElementById('prime').innerHTML += "<br />" + i; 
 
    } 
 
}
<div id="prime"></div>

您需要添加到现有的HTML。

1

对于输出水平,把所有的result += i + " ",并将其分配给<div>

var prime = document.getElementById("prime"), 
 
    result = ""; // Result is a string 
 

 
for (var i = 1; i <= 100; i++) { 
 
    var invalid = false; 
 

 
    for (var j = 2; j <= i; j++) { 
 

 
    if (i % j === 0 && j !== i) { 
 
     invalid = true; 
 
    } 
 
    } 
 

 
    if (invalid === false) { 
 
    result += i + " "; 
 
    console.log(i); 
 
    } 
 
} 
 

 
prime.innerHTML = result;
<div id="prime"></div>