亲爱的开发人员,您好
我的数组的每个值都应该在html列表中有自己的子弹 - 他们这样做。但是在实际列表开始之前有一个“未定义”。 我想知道它来自哪里。我的代码出了什么问题?
感谢您的帮助!
HTML:
Shopping List
<ul id="list"></ul>
JS:
function letsShop(){
var array = ["milk", "cheese", "eggs"];
for (var i = 0; i < array.length; i++){
var stuff = stuff + "<li>" + array[i] + "</li>";
document.getElementById("list").innerHTML=stuff;
}}
window.addEventListener("load", letsShop);
答案 0 :(得分:0)
stuff
循环运行之前, undefined
为for
。另外,每次迭代都会覆盖循环中列表的内容。
正确的方法是:
function letsShop() {
// Declare the variable outside the loop
var stuff = '';
var array = ["milk", "cheese", "eggs"];
for (var i = 0; i < array.length; i++) {
stuff = stuff + "<li>" + array[i] + "</li>";
}
// Set the contents in list after the loop
document.getElementById("list").innerHTML = stuff;
}
letsShop();
Shopping List
<ul id="list"></ul>
答案 1 :(得分:0)
因为你的stuff变量是在循环中声明的,它尚未初始化,这意味着返回undefined。更新您的代码如下:
function letsShop(){
var array = ["milk", "cheese", "eggs"];
var stuff = "";
for (var i = 0; i < array.length; i++){
stuff +="<li>" + array[i] + "</li>";
document.getElementById("list").innerHTML=stuff;
}
}
letsShop();