循环遍历一个数组,正在使用下面的“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>
)都添加到所有列表项中但我知道我错了任何一个请帮我解释这一步
答案 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
。
修改强>
由于range
为undefined
,您希望循环遍历number
数组,请按以下方式更改for
:
for (index = 0; index < number.length; index++) {
// ^^^^^^
答案 1 :(得分:1)
每次循环执行时都不会添加UL标记,因为它在循环之外。每次都会添加LI标记,因为它位于循环内部。