我想从对象中检索数据,我需要进行多次迭代。我在第一个内部有另一个对象。
这是我尝试做的事情
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/
谢谢!
答案 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);
}