考虑我有以下代码:
var Descriptions = {
test1: {
name: 'test1',
desc: 'Clubhouse'
},
test2: {
name: 'test2',
desc: 'Pub'
}
};
如何提醒所有'name'或所有'desc'?以下内容不起作用Descriptions['name']
。
var DescriptionsName = Descriptions['name'] <------help here;
var Descriptionsholder = `'<div class="wrapper">'+DescriptionsName +'</div>';`
$(Descriptionsholder ).appendTo($("#main-content"));
Div风格
.wrapper {
position: relative;
margin: 40px;
float: left;
width:200px;
height:200px;
overflow: hidden;
-webkit-box-shadow: 1px 1px 1px 1px grey;
-moz-box-shadow: 1px 1px 1px 1px grey;
box-shadow: 1px 1px 1px 1px grey;
}
答案 0 :(得分:2)
你可以试试这个
for (var x in Descriptions)
{
alert(Descriptions[x].name);
}
您可以使用for in
循环来迭代对象的属性。
由于test1
和test2
是您的Descriptions
对象的属性,并且在访问test1
或test2
的值之后,例如Descriptions[x]
其中x可以是test1或test2,您可以访问与Descriptions[x].name
或Descriptions[x].desc
相同的name或desc属性。
修改
获取所有名称,您可以尝试这个
var DescriptionsName = [];
for (var x in Descriptions)
{
DescriptionsName.push(Descriptions[x].name);
}
var Descriptionsholder = '<div class="sandwich-wrapper">'+DescriptionsName.join() +'</div>';
$(Descriptionsholder).appendTo($("#main-content"));
已更新
获取所有名称,您可以尝试这个
for (var x in Descriptions)
{
var Descriptionsholder = '<div class="sandwich-wrapper">'+Descriptions[x].name +'</div>';
$(Descriptionsholder).appendTo($("#main-content"));
}
答案 1 :(得分:0)
Object.keys
获取一个对象,并返回其所有属性名称的列表。对那些可以获得值的map
进行操作。这样就可以构建所有名称的列表。
var DescriptionsNames = Object.keys(Descriptions).map(function(key) {
return Descriptions[key].name;
});
此后DescriptionsNames
将是原始对象中所有name
属性的列表。
编辑:在映射的函数中遗漏.name
。
答案 2 :(得分:-3)
编辑:
for (var test in Descriptions) alert(Descriptions[test].name);