innerHTML在for循环里“只执行一次”的问题(本人小白一枚)

今天在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的元素的整体内容,所以如果直接用“=”,相当于将原来的内容覆盖(/取代?)了,所以需要变为“+=”。

(注:题目“只执行一次”加了引号)

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值