【问题标题】:Loop through severals objects js循环几个对象js
【发布时间】:2014-07-28 17:34:24
【问题描述】:

我想从一个对象中检索数据,我需要进行多次迭代。我在第一个里面还有另一个对象。

这是我尝试做的事情

for (var site in dataArray) {
    var itemList = site + ' - ' + dataArray[site].username + ' - ' + dataArray[site].followers + '<div class="detail"></div>' + '<br>';

    $('.test').append(itemList);

    for (var key in dataArray[site].details) {
        var itemDetail = ' - ' + key + ' ' + dataArray[site].details[key];

        $('.detail').append(itemDetail);
    }
}

但是当我执行此代码时,第一个元素追加,从其他详细信息对象接收所有键/值。我只想显示与他的站点父站点对象相关的详细信息对象。

这是一个小提琴:http://jsfiddle.net/JeremDsgn/7EX6M/

谢谢!

【问题讨论】:

  • 我不明白你想要达到什么目的?
  • 我想遍历第一个对象,然后遍历第二个对象(详细信息),但也许我不需要两个 for...in 循环来实现这一点。

标签: javascript jquery loops object for-in-loop


【解决方案1】:

这是因为您的选择器 $('.detail') 选择了 所有detail 的元素。

尝试使用 DOM 而不是字符串。我给你这个作为个人建议。我曾经像现在这样通过字符串附加 HTML。自从我开始使用 DOM 对象,因为它们实际上是被使用的,javascript 语言变得更加愉快。

for (var site in dataArray) {
    var itemList = site + ' - ' + dataArray[site].username + ' - ' + dataArray[site].followers;

    var details = document.createElement('div');
    details.className = 'detail';

    for (var key in dataArray[site].details) {
        var itemDetail = ' - ' + key + ' ' + dataArray[site].details[key];

        $(details).append(itemDetail);
    }

    $('.test').append(itemList).append(details);
}

【讨论】:

  • 像魅力一样工作:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-17
  • 1970-01-01
  • 1970-01-01
  • 2019-06-30
  • 2018-09-14
  • 2019-08-08
  • 1970-01-01
相关资源
最近更新 更多