1

这真的很奇怪,应该很简单。

我在 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;
}

问题是没有其他 a 标签,尽管第一个在循环外,被显示。尽管有 .show(),但它们都保持隐藏状态。看来这条线$("images:nth-child(" + i + ")").show();是行不通的。

谁能指出我正确的方向?

4

1 回答 1

3

images != #images另外,您需要选择实际图像而不是容器:

$("#images img:nth-child(" + i + ")").show();

但我只是使用eq,不确定以上是否可行,因为图像位于标签内:

$("#images img").eq(i).show();

在任何情况下,您都不需要那个while循环,只需使用 jQueryeach来循环集合。

另请注意,delay仅在有动画队列时才有效,而这不是您的情况。

于 2013-06-11T01:47:05.407 回答