【问题标题】:Adding a simple counter[i] variable in JavaScript to append to a wrapper.append(container);在 JavaScript 中添加一个简单的 counter[i] 变量以附加到 wrapper.append(container);
【发布时间】:2020-03-21 06:34:27
【问题描述】:

这是当前应用程序: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...)
} 

这不起作用并且每次都会破坏代码。由于我正在学习,你能提供几种我可以尝试解决这个问题的语法吗?如果你只想修复它,那也没关系。我只是想了解为什么其中一些东西有效。

在我们的 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>');
}

【问题讨论】:

  • return i?你认为这是在做什么?你想将i 加一吗? i 加一,无循环。如果day[i] 返回未定义,则不确定day 中的内容

标签: javascript html arrays append wrapper


【解决方案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

【讨论】:

  • 天哪,我不知道我能做到这一点!谢谢!!
猜你喜欢
  • 2017-08-27
  • 2011-01-24
  • 2018-09-28
  • 2019-11-23
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
  • 2015-02-22
  • 2011-10-04
相关资源
最近更新 更多