以下是当前应用:JSFiddle目前,它会吐出31个半随机但不重复的条目,如下所示:
meal1= undefined,
Plain Pizza,
Hard-boiled egg,
Gluten-free cookie,
meal2= undefined,
Fried Beefcake,
Hard-boiled egg,
Graham Crackers,
meal3= undefined,
Lasagna,
Tater tots,
Sundae,
**看到哪里说“未定义”?我正在尝试为其添加一种day [i]计数器,这需要(我认为)将另一个数据类型附加到容器div。
我在添加根据这些规则播放的其他变量时遇到很多麻烦。
我尝试过的:嵌套一个for循环,该循环将增加每个条目的日期,并将其作为新的div追加到脚本底部:
var i = 1;
var day = [];
for (i = 1; i < 32; i++) {
return day[i] (I don't know...)
}
这不起作用,每次都会破坏代码。既然我正在学习,您能否提供一些我可以尝试解决的语法类型?如果您只想修复它,那也很好。我只想学习why其中的一些方法。
在Javascript代码的底部,我们有:
for (var key in meals){
container = $('<div id="mealsDiv" class="container"></div>');
wrapper.append(container);
//This is where I want to add an extra div class that shows the date (1-31).
//I want to append day[i] to the meal and just number them, 1-31.
//I tried doing the following but it just breaks everything.
container.append('<div class="date">' + day[i] +'</div>');
container.append('<div class="main">' + meals[key].main +'</div>');
container.append('<div class="side">' + meals[key].side +'</div>');
container.append('<div class="dessert">' + meals[key].dessert +'</div>');
}
您得到undefined
,因为day
是一个数字而不是数组,并且您试图执行day[i]
var day = 1;
console.log(x[1]); // undefined
您可以简单地使用key
,它是膳食的索引,例如:
container.append('<div class="date">' + (+key + 1) +'</div>');
+key
将其转换为int
,而+ 1
是因为数组索引从0
开始
而不是
container.append('<div class="date">' + day[i] +'</div>');
这是您的updated fiddle