【发布时间】:2014-08-05 02:59:38
【问题描述】:
我试图弄清楚如何在 for..in 循环中,在另一个 each 循环中订购商品,循环遍历我的订单数组以尊重。
我的数据有一个对象:
dataObj = {
"sites":{
"dribbble":{
// ID = 0
"username":"JeremDsgn"
},
"behance":{
// ID = 1
"username":"JeremDsgn"
},
"cinqcentpx":{
// ID = 2
"username":"jeremdsgn"
}
},
"order":["1","2","0"]
};
实际上我在显示循环中为每个项目添加了id,但是在对象中添加id会更好吗?
所以之后,我尝试使用要尊重的订单数组来显示我的商品。
var index = 0;
for (var site in dataObj.sites) {
var itemList = '<li id="' + index + '">' + site + '</li>';
$.each(dataObj.order, function(i, id) {
console.log(i, id);
$(itemList).appendTo('.list-social .social-wrapper');
});
index++;
}
但我复制了我的网站 3 次,因为此时我的 dataObj.sites 对象上有 3 个元素。
那么如何才能以良好的顺序显示我的 itemList?最终结果应该是:
<div class="list-social">
<ul class="social-wrapper">
<li id="1">behance</li>
<li id="2">cinqcentpx</li>
<li id="0">dribbble</li>
</ul>
</div>
【问题讨论】:
-
这是有问题的
for-in声明。那是不保证订单的部分。而是使用for语句(或$.each)来迭代dataObj.order数组,而不是给它索引,而是按照你想要访问它的顺序给它每个dataObj.sites属性的名称。 -
...
order:["behance","cinqcentpx","dribbble"]然后您还需要将 ID 添加到每个对象。 -
我完全不清楚。因为实际上我已经使用 each 循环遍历 dataObj.order。
-
...如果 ID 真的要对应于每个对象的从零开始的索引,那么对象数组似乎更有意义。
标签: javascript jquery for-loop each