推方法不起作用

时间:2013-03-08 06:10:17

标签: javascript push

我一直在丢掉这头发。我想创建一个动态数组,具体取决于我的主要内部有多少个标签。请帮帮我!

这是我的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>

这是我的JS

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]);

2 个答案:

答案 0 :(得分:1)

您可以轻松规避整个问题:

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

魔术:p

答案 1 :(得分:0)

如果你对此运行调试器,你会注意到当集合只有11时,你试图引用集合中的第12个元素。

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

应该是

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