2016-11-10 113 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>