这真的很奇怪,应该很简单。
我在div中的标签内有一系列图像,例如:
<div id="images">
<a href="#"><img src="img1.jpg"/></a>
<a href="#"><img src="img2.jpg"/></a>
<a href="#"><img src="img3.jpg"/></a>
</div>
我想要隐藏所有这些,但是循环显示第n个,所以我创建了这个图像滑块样式脚本:
var atags = $('#images').children().length;
$('#images').children().hide();
$('#images a:first').show();
var i=0
while (i <= atags){
$('#images').children().delay(4000).hide();
$("images:nth-child(" + i + ")").show();
i = i + 1;
}
问题是没有其他标签,尽管首先出现了循环,但仍会显示。它们都保持隐藏状态.show()。行$("images:nth-child(" + i + ")").show();
似乎无效。
有人能指出我正确的方向吗?
答案 0 :(得分:3)
images != #images
加上你需要选择实际的图像而不是容器:
$("#images img:nth-child(" + i + ")").show();
但我会使用eq
,不确定如果上面的图像是 in 标签,上述内容是否会起作用:
$("#images img").eq(i).show();
在任何情况下,您都不需要while
循环,只需使用jQuery的each
来循环集合。
另请注意,delay
仅在存在动画队列时才有效,而不是您的情况。