我一直在丢掉这头发。我想创建一个动态数组,具体取决于我的主要内部有多少个标签。请帮帮我!
这是我的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]);
答案 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++)