我有一个javascript打印出所有素数1 - 100,我使用innerHTML打印出结果。我的控制台给了我数字列表,但innerHTML给了我一个数字。 100我想。如何以与我在控制台中打印的方式相同的方式显示数字列表,但是在ID =“prime”的div中?
这是我写的
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>
我的控制台输出1,2,3,5,7,11,... 97但我的div输出101
这是CODEPEN
感谢
答案 0 :(得分: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;
}
}
&#13;
<div id="prime"></div>
&#13;
您需要添加到现有的HTML。
答案 1 :(得分:2)
您的代码放置错误。对于初学者来说,就这样说:
Traceback (most recent call last):
File "test.py", line 12, in <module>
with my_content_manager() as cm:
File "C:\Users\abc\AppData\Local\Programs\Python\Python36\lib\contextlib.py", line 82, in __enter__
return next(self.gen)
File "test.py", line 5, in my_content_manager
self.entrance = True
NameError: name 'self' is not defined
此外,如果您使用该代码,它只会显示 if (invalid === false) {
console.log(i);
document.getElementById('prime').innerHTML = i;
}
的最后值。要解决此问题,请使用i
代替+=
=
最后,我在if (invalid === false) {
console.log(i);
document.getElementById('prime').innerHTML += i + " | ";
}
后面添加一行(&#34; |&#34;),以便明确数字位置。
答案 2 :(得分:1)
您应该在循环中的每个步骤更新innerHTML,而不是仅在结尾处更新。您还应该将每个新号码附加到现有内容而不是覆盖它:
document.getElementById('prime').innerHTML += ' ' + i;
答案 3 :(得分: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;
&#13;
<div id="prime"></div>
&#13;