在JavaScript中添加一个简单的counter [i]变量以附加到wrapper.append(container);

问题描述 投票:1回答:1

以下是当前应用: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>');
}

javascript html arrays append wrapper
1个回答
1
投票

您得到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

© www.soinside.com 2019 - 2024. All rights reserved.