【问题标题】:Javascript trying to iterate through an array of objects to display their propertiesJavascript 尝试遍历对象数组以显示其属性
【发布时间】:2013-12-18 20:59:38
【问题描述】:

我有一个 json 对象,其中包含一组具有相似属性的对象。我正在尝试遍历每个对象的数组并显示它们各自的属性。这是我到目前为止所拥有的......

Object.keys(jsoncont)
    .sort(function(a,b) {
        return b.localeCompare(a)
})
.forEach(function(key) {
    var val = jsoncont[key];

    $('#contactSearchResults').html('<div class="resultset"><input type="radio" name="customer_c_id" value="' + val.id + '" /></div><div class="resultset">' + val.first + '</div><div class="resultset">' + val.last + '</div><div class="resultset">' + val.email + '</div>');

});

这仅返回数组中的一个对象。有人可以向我解释如何遍历所有对象而不是只返回键中的第一个结果吗?

【问题讨论】:

  • 脚本是否在 onload 事件之后启动?
  • 附带说明,使用 Object.keys 时请注意,因为它仅在 IE >= 9 中受支持。有关详细信息,请参阅this 问题。
  • 请不要支持IE8。

标签: javascript jquery json foreach


【解决方案1】:

可能是因为您在每次迭代时都设置了#contactSearchResults 的内容。如果要将它们全部打印到 DOM,请尝试将其更改为 append

$('#contactSearchResults').append('<div class="resultset"><input type="radio" name="customer_c_id" value="' + val.id + '" /></div><div class="resultset">' + val.first + '</div><div class="resultset">' + val.last + '</div><div class="resultset">' + val.email + '</div>');

【讨论】:

  • 就是这样!非常感谢。
【解决方案2】:

试试这个:

var allitems = "";
Object.keys(jsoncont)
.sort(function(a,b) {
    return b.localeCompare(a)
})
.forEach(function(key) {
    var val = jsoncont[key];

    allitems += '<div class="resultset"><input type="radio" name="customer_c_id" value="' + val.id + '" /></div><div class="resultset">' + val.first + '</div><div class="resultset">' + val.last + '</div><div class="resultset">' + val.email + '</div>';
});
$('#contactSearchResults').html(allitems)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-29
    • 1970-01-01
    • 1970-01-01
    • 2017-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多