2013-08-14 2 views
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] 물론 나는 내가 정의되지 않은 오류가 발생합니다. 어떤 제안을 내가 잘못하고있는, 지금은 단지 하나의 배열을 html로 게시하고 있습니다.객체 키로 중첩 된 배열 반복

+0

html [ 'easyBB'] [0]'또는 'html.easyBB [0]' – vittore

+1

당신은 단지 당신의 내부 루프를 제거해야 할 것 같습니다 ... – arghbleargh

답변

4

문제는,이 선이 반복입니다하지 않는 루프 반복 있도록 콘텐츠 매번 대체

cont.innerHTML = ... 

마지막 항목 ("AvacWeb3") 만 보입니다.

cont.innerHTML += ... 

과에 필요하지 않은 for (var i =0 ... 루프를 제거하는 것이

변경합니다. (jsfiddle)

+0

우리는 승자! 고맙습니다. 하하 저는 마약입니다. for 루프를 추가했습니다. 그 후에 for 루프를 추가했는데, innerHTML을 보지 않을 생각이었습니다! 나는 순수한 JS를 작성하려고 노력하고있다. jQuery를 먼저 배웠기 때문에 항상'.append'를 사용해 준 후 나를 버렸다. Stuart! – EasyBB

0
for(var i = 0; i < html[key].length; i++){ 
... 
0

html [key] [i] [0]해야합니다.
또한 trevor가 말한 것, 즉 html [key] .length 대신 key.length를 사용해야합니다.

예를 들어, var currentkey에 html [key]를 지정하면 쉽게 추적 할 수 있습니다. 또한

, 그냥 재미를 위해, array.forEach 조사)