简单循环通过数组,使用“for”循环代码令人困惑

时间:2015-07-03 06:22:33

标签: javascript

循环遍历一个数组,正在使用下面的“for”循环,

<html>

<body>
    <p id="demo"></p>
    <button onclick="myFunction()">Submit</button>
    <script>
    function myFunction() {
        var index;

        var text = "<ul>";

        var number = ["one", "two", "three"];

        for (index = 0; index < number.length; index++) {
            text += "<li>" + number[index] + "</li>";
        }
        text += "</ul>";

        document.getElementById('demo').innerHTML = text;
    }
    </script>
</body>

</html>

我在下面的步骤中感到困惑请说明这一步

text =text + "<li>" + number[index] + "</li>";

我担心的是每次循环执行变量文本(<ul>)都添加到所有列表项中但我知道我错了任何一个请帮我解释这一步

2 个答案:

答案 0 :(得分:4)

它只是将新创建的HTML字符串附加到text变量。

"<li>" + number[index] + "</li>";

将在li数组的innerText索引处创建一个index标记,其中包含number元素。

for内,变量index在每个步骤后递增。因此,number[index]始终是array中的唯一元素。

for循环结束时,text将如下所示:

text = '<ul><li>one</li><li>two</li><li>three</li>';

</ul>循环完成后添加for

修改

由于rangeundefined,您希望循环遍历number数组,请按以下方式更改for

for (index = 0; index < number.length; index++) {
//                      ^^^^^^

答案 1 :(得分:1)

每次循环执行时都不会添加UL标记,因为它在循环之外。每次都会添加LI标记,因为它位于循环内部。