循环几个对象js

时间:2014-06-07 15:47:38

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

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

这是我尝试做的事情

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/

谢谢!

1 个答案:

答案 0 :(得分:3)

这是因为您的选择器$('.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);
}