来个大佬解释下

来源:4-5 重复重复(for循环)

懒得起名字_3

2019-03-29 18:40

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>W3Cschool教程(w3cschool.cn)</title>

</head>

<body>


<p>点击按钮循环代码5次。</p>

<button onclick="myFunction()">点击这里</button>

<p id="demo"></p>

<script>

function myFunction(){

    var x="";

    for (var i=0;i<5;i++){

        x=x+"该数字为 " + i + "<br>";

    }

    document.getElementById("demo").innerHTML=x;

}

</script>

</body>

</html>


//里面的 x=x+"该数字为 " + i + "<br>";  为什么要在前面加个 x+


写回答 关注

4回答

  • qq_凡星_4
    2019-05-15 23:28:30

    如果不加x+的话,每次循环时x的值都是”该数字为 i“,循环完后,x的值只是”该数字为 4+换行“;加了x+的话,第一次循环时x的值是”该数字为 1+换行“,第二次循环时x的值是”该数字为 1+换行 该数字为 2+换行“,最后循环完后就是你要的格式了。

  • keydew
    2019-04-01 15:50:21

    因为这段代码里是把所有需要显示的文本放在x这一个变量里的,代码里for循环:

    for (var i=0;i<5;i++){
        x=x+"该数字为 " + i + "<br>";
    }

    是循环给x变量追加文本,直到循环结束后再通过innerHTML直接把值给到id为demo的p元素来显示:

    document.getElementById("demo").innerHTML=x;

    如果你想把x+去掉也可以,只是文本输出的方式和位置也要换一下,要换在for循环里,每个循环输出一次,如将函数myFunction里内容替换为:

    var x="";
    for (var i=0;i<5;i++){
       x="该数字为 " + i + "<br>";
       document.write(x);
    }

    这样就可以就可以达到同样的效果,只是document.write会把函数调用前的页面全部覆盖掉,所以还是原来那种方式比较好。

    keydew

    第二种方法document.write(x);可以换成document.getElementById("demo").innerHTML+=x; 这样就不会覆盖原来的页面

    2019-04-01 15:52:22

    共 1 条回复 >

  • 懒得起名字_3
    2019-03-29 19:00:09

    想实现第一个 但是为什么要在i前面加个x+  我删了之后为什么直接就变成该数字为4呢

    阿穆哥哥

    你这个代码是先进行循环结束后再进行赋值的,当然当x=4的时候结束了,跳出循环之后,那个.innerHTML被赋值为4了,你想实现第一个效果可以把那个赋值语句放进循环

    2019-03-29 20:08:10

    共 1 条回复 >

  • 阿穆哥哥
    2019-03-29 18:57:35

    你这个是想实现:该数字为 0

    该数字为 1

    该数字为 2

    该数字为 3

    该数字为 4

    还是想实现:该数字为0

    该数字为 0该数字为 1

    该数字为 0该数字为 1该数字为 2    这样的效果?

    懒得起名字_...

    想实现第一个 但是为什么要在i前面加个x+ 我删了之后为什么直接就变成该数字为4呢

    2019-03-29 19:00:34

    共 1 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468194 学习 · 21891 问题

查看课程

相似问题