2013-03-08 3 views
0

나는 이걸로 내 머리카락을 잃어 버렸습니다. 내 메인에있는 태그의 수에 따라 동적 배열을 만들고 싶습니다. 도와주세요! 여기 푸시 방법이 작동하지 않습니다.

내 JS 내 HTML 여기

<div id="image-slider"> 
    <a href="http://www.google.com"><img src="images/slider1.png"></a> 
    <a href="http://www.phpacademy.org"><img src="images/slider2.png"></a> 
    <a href="http://www.ign.com"><img src="images/slider3.png"></a> 
    <a href="http://www.w3schools.com"><img src="images/slider4.png"></a> 
    <a href="http://www.nfl.com"><img src="images/slider5.png"></a> 
</div> 

입니다

container = document.getElementById('image-slider'); 
containerLength = container.childNodes.length; 
images = new Array(); 
for(var i=0;i<=containerLength;i++){ 
if (container.childNodes[i].nodeName == 'A') { 
    alert(container.childNodes[i]);// here I get the desired value 
    images.push(container.childNodes[i]); 
      //this doesn't work even if i use images.push('Hello'); 
} 
} 
alert(images[0]); //doesn't even pops out 
// if I do it like this.... i get the desired result! I don't know why! but this is not what i want 
images.push(container.childNodes[1]); 
alert(images[0]); 
+0

Protip해야한다이 때 컬렉션에 12 요소를 참조하려고하는 것을 알 수 있습니다 : 만 얻을 요소에'container.children'를 사용하여 . 'childNodes'는 엘리먼트와 텍스트 노드를 얻습니다. 그러면 수동으로 필터링해야합니다. –

답변

1

귀하의 모든 문제는 쉽게 피할 수 있습니다

var images = document.getElementById("image-slider").children; 

매직 : P

+0

와우! 대단히 감사합니다 !! 넌 나를 구했다! W3School을 제외하고 javascript에 대한 훌륭한 리소스를 알고 계십니까? – krlozadan

+0

W3Schools는 실제로 [*** 최악의 *** 리소스 밖에] 있습니다 (http://w3fools.com/). 이 링크를 클릭하면 왜 그런지 알려줄 것이며 좋은 정보를 찾을 수있는 장소에 대해 조언 해 줄 것입니다. –

0

당신이 만약 이걸로 디버거를 실행해라. 당신이 컬렉션은 11

for(var i=0;i<=containerLength;i++) 

for(var i=0;i<containerLength;i++) 
+0

고맙습니다. VARAK 위의 코드를 시도해 보았지만 제대로 작동했습니다. :) – krlozadan

관련 문제