我正在制作一个函数,需要使用 for 循环来输出两个数字之间的所有数字。如果用户选择 1
和 4
,我的函数将输出 1,2,3,4
。尽管我的函数按我需要的方式工作,但使用 document.GetElementById
的输出不想合作(仅覆盖最终答案 (4))和 document。 write()
将我带到另一个我不想要的页面。我需要的是一种替换我的 p id='replaceOne' 的方法,它将所有数字放在同一页上。谢谢!
function Counter() {
var number1 = document.getElementById('number1').value;
var number2 = document.getElementById('number2').value;
for (i = number1; i <= number2; i++) {
var answer1 = [i];
document.write(answer1);
}
}
<html>
<head>
<title>
For Loops excercise 1
</title>
</head>
<body>
<table>
<tr>
<td align="left" valign="top">
<p class=headerOne><h3>Counter a</h3>
<textarea id="number1" class="box"></textarea><br>
<textarea id="number2" class="box"></textarea><br>
<button type="button" onclick="Counter()">Find range</button><br>
<p>Your result is: </p>
<p id="replaceOne"></p>
</td>
</body>
</html>
最佳答案
您可以创建一个短名称的函数,其功能与 document.getElementById
相同,并将其添加到元素的 innerHTML
中。
函数:const elm = id => document.getElementById(id)
。这一行只是一个 Arrow Function哪个return
提供给该函数的带有 id 的元素。与
function elm(id){
return document.getElementById(id)
}
更新 innerHTML:
elm('replaceOne')
返回一个元素。每个元素都有一个属性 innerHTML
.在这种情况下,innerHTML
是 ''
。我正在使用加法赋值将 i
添加到现有的 innerHTML
。 elm('replaceOne').innerHTML += i;
行与
elm('replaceOne').innerHTML = elm('replaceOne').innerHTML + i;
const elm = id => document.getElementById(id)
function Counter() {
var number1 = document.getElementById('number1').value;
var number2 = document.getElementById('number2').value;
for (i = number1; i <= number2; i++) {
var answer1 = [i];
elm('replaceOne').innerHTML += i;
}
}
<table>
<tr>
<td align="left" valign="top">
<p class=headerOne><h3>Counter a</h3>
<textarea id="number1" class="box"></textarea><br>
<textarea id="number2" class="box"></textarea><br>
<button type="button" onclick="Counter()">Find range</button><br>
<p>Your result is: </p>
<p id="replaceOne"></p>
</td>
</table>
关于javascript - getElementById 和 Document.write 的替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54813308/