0
var html = {
easyBB :   
['easybbtutorials','www.easybbtutorials.com','http://i76.servimg.com/u/f76/17/83/35/07/easybb10.png'],
AvacWeb:
['AvacWeb','www.avacweb.com','http://i45.servimg.com/u/f45/16/35/08/55/new_lo12.png'],
easyBB2:
['easybbtutorials','www.easybbtutorials.com','http://i76.servimg.com/u/f76/17/83/35/07/easybb10.png'],
AvacWeb2 : 
['AvacWeb','www.avacweb.com','http://i45.servimg.com/u/f45/16/35/08/55/new_lo12.png'],
easyBB3 :
['easybbtutorials','www.easybbtutorials.com','http://i76.servimg.com/u/f76/17/83/35/07/easybb10.png'],
AvacWeb3 : 
['AvacWeb','www.avacweb.com','http://i45.servimg.com/u/f45/16/35/08/55/new_lo12.png']
};
 var cont = document.getElementById('container');
  for(var key in html){
   for(var i =0;i<key.length;i++ ){
     var name= '<span class="name">'+html[key][0] +'</span>',
     link = '<span class="url"><a href="'+html[key][1]+'">'+html[key][1] +'</a></span>',
     image = '<img src="'+html[key][2]+'" title="'+html[key][0]+'" />';        
     cont.innerHTML= '<div class="wrapper">'+ name + '<br />'+image+'<br />'+link+'</div>';
      i++;
   }
 }

我正在尝试遍历我创建的 HTML 对象的每个键中的数组 我不知道如何做到这一点 我现在尝试了多种方法,我相信(因为我发布)我做错了。我也试过这样做:html[key[i]][0]当然我得到一个错误 i 没有定义。任何建议我做错了什么,截至目前,它只是将一个数组发布到 html。

4

3 回答 3

4

问题不在于迭代,而在于线路

cont.innerHTML = ...

每次循环迭代时都会替换内容,以便您只能看到最后一个项目(“AvacWeb3”)。

将其更改为

cont.innerHTML += ...

并摆脱for (var i =0 ...不需要的循环。(jsfiddle

于 2013-08-14T22:18:25.013 回答
0

你应该做 html[key][i][0]。
你也应该按照 Trevor 说的做,用 html[key].length 代替 key.length。

例如,通过将 html[key] 分配给 var currentkey 让自己变得轻松,更容易跟踪。

另外,查看array.forEach,只是为了好玩;)

于 2013-08-14T22:18:16.107 回答
0
for(var i = 0; i < html[key].length; i++){
...
于 2013-08-14T22:13:34.277 回答