Javascript 推送方法不起作用

Javascript 推送方法不起作用,javascript,push,Javascript,Push,我一直在为这件事发愁。我想创建一个动态数组,这取决于main中有多少标记。请帮帮我 这是我的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">

我一直在为这件事发愁。我想创建一个动态数组,这取决于main中有多少标记。请帮帮我

这是我的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]);
container=document.getElementById('image-slider');
containerLength=container.childNodes.length;
images=新数组();

对于(var i=0;i您的整个问题可以很容易地规避:

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

Magic:p

如果您在这个集合上运行调试器,您会注意到您试图引用集合中的第12个元素,而该集合只有11个元素

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

用于(var i=0;iProtip:Use
container.children
仅获取元素。
childNodes
获取元素和文本节点,然后您必须手动筛选。哇!!!非常感谢!!您救了我!您知道除了W3Schools之外,还有什么好的javascript资源吗?W3Schools实际上是。该链接将告诉您原因,还有advis谢谢你,瓦拉克,我试过上面的代码,效果很好:)
for(var i=0;i<containerLength;i++)