版权声明:若要转载:请附上原文链接;作者:CSDNyzk。 https://blog.csdn.net/CSDNyzk/article/details/83212800
今天在w3school里系统学习JS的知识时,看到一个TIY,原本代码如下:
<!DOCTYPE html>
<html>
<body>
<p>点击下面的按钮,将代码块循环五次:</p>
<button onclick="myFunction()">点击这里</button>
<p id="demo"></p>
<script>
function myFunction()
{
var x="";
for (var i=0;i<5;i++)
{
x=x + "The number is " + i + "<br>";
}
document.getElementById("demo").innerHTML=x;
}
</script>
</body>
</html>
运行结果很明显:
The number is 0
The number is 1
The number is 2
The number is 3
The number is 4
我发现问什么要把innerHTML放在for循环外面呢?放在里面不是还能直接将x=x + "The number is " + i + "<br>";换为x="The number is " + i + "<br>";吗?
于是我将document.getElementById("demo").innerHTML=x;放在了for循环里面,但运行结果变成了:
The number is 4
有点懵逼,之后搜了下,发现要把document.getElementById("demo").innerHTML=x;换成
document.getElementById("demo").innerHTML+=x;
就行了。
后来找了找innerHTML的意思是“内部的HTML”,然后恍然大悟,也就是说document.getElementById("demo").innerHTML指的是id为demo的元素的整体内容,所以如果直接用“=”,相当于将原来的内容覆盖(/取代?)了,所以需要变为“+=”。
(注:题目“只执行一次”加了引号)