JQuery:隐藏孩子,展示第n个孩子?

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

我在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(); 只是不工作。

有人能指出我正确的方向吗?

images != #images plus你需要选择实际的图像而不是容器:

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

但我会使用eq ,不确定如果图像标签 ,上述内容是否可行:

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

在任何情况下,你都不需要while循环,只需使用jQuery来循环集合。

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