请参阅此处示例 - http://jsfiddle.net/jayblanchard/b2y1tagk/
使用以下代码,我认为我会将所有三个元素附加到结果,但我没有。我得到:
主要 - 栏
辅助-glorp
var elements = [{
type: 'secondary',
name: 'foo'
}, {
type: 'primary',
name: "bar"
}, {
type: 'secondary',
name: "glorp"
}];
var elementItem;
$(elements).each(function () {
if (this.type == 'primary') {
elementItem = this.type + ' - ' + this.name + '<br />';
} else {
elementItem += this.type + ' - ' + this.name + '<br />';
}
});
$('#results').append(elementItem);
所以我想我应该将 +=
运算符添加到 if 条件的第一部分,但是当我这样做时,我得到了这个:
undefinedsecondary - foo
初级 - 酒吧
辅助-glorp
它们生成时的顺序无关紧要,它们在完成时都必须存在。我确信我遗漏了一些明显的东西,有人可以告诉我那是什么吗?
最佳答案
elementItem = this.type + ' - ' + this.name + '<br />';
需要:
elementItem = this.type + ' - ' + this.name + '<br />' + elementItem;
否则,如果 primary 不是第一项,则覆盖它。
用 var elementItem = "";
初始化它,这样它就不会将 elementItem 类型转换为字符串 "undefined"
关于javascript - 遍历数组但并非所有项目都显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25393730/