While循环和innerHTML-为什么它以相反的方式显示数字?

时间:2018-09-01 14:55:21

标签: javascript loops while-loop innerhtml

function doItAgain() {

            var loopCount = 5;

            while(loopCount > 0) {

                    var target = document.getElementById("target");
                    target.innerHTML = "LoopCount: " + loopCount + "<br>" + target.innerHTML;
                    console.log("LoopCount is now: " + loopCount);
                    loopCount = loopCount -1;
                }

这是当前功能。 它由使用onclick事件处理程序定义的按钮激活。

现在,我的问题是:为什么按下按钮后,数字从1到5而不是从控制台的5到1,为什么会显示? 我已经知道,如果将target.innerHTML设置为句子的开头,它将在我的网页中将它们从5显示为1,但是我不知道为什么会这样

1 个答案:

答案 0 :(得分:1)

考虑此行的作用:

target.innerHTML = "LoopCount: " + loopCount + "<br>" + target.innerHTML;

让我们说target.innerHTML在第一个循环之后包含

LoopCount: 5<br>

然后在loopCount = 4循环中,您正在做

target.innerHTML = "LoopCount: " + loopCount + "<br>" + target.innerHTML;
再次

target.innerHTML = "LoopCount: " + loopCount + "<br>" + "LoopCount: 5<br>";
// -----------------------------------------------------^^^^^^^^^^^^^^^^^^

所以你得到

LoopCount: 4<br>LoopCount: 5

以此类推。

如果将innerHTML 放在第一行,则会颠倒顺序:

target.innerHTML = target.innerHTML + "<br>LoopCount: " + loopCount;