2012-03-17 54 views
0

我正在构建照片库,并且需要将一些CSS应用于我的#wrapper div视图中的第一张照片。下面是相关的代码:未按计划访问jQuery类后代

$('.inside:first-of-type>div:nth-of-type(1)').css('display', 'none'); 
$('.inside:first-of-type>div:nth-of-type(2)').css('display', 'block'); 

视野内#wrapper指定股利分配类.inside的所有元素(本类被删除,一旦滑动外#wrapper指定)。每张照片都有两个div层。在这种情况下,我想隐藏第一层并删除第二层。我认为上面的代码会起作用,而且它的确如此,但前提是系列中的第一张照片是可见的,否则它什么也不做。

我的CSS在这里错了吗?

+2

如何发布HTML? – j08691 2012-03-17 17:42:53

+0

我不认为'类型'是有效的。你会做.inside:首先,然后做div:nth-​​child(1)和div:nth-​​child(2) – 2012-03-17 17:44:03

+0

@DanielLorenz。你是对的,没有!如果你想要的类型,你只是写的类型... – gdoron 2012-03-17 17:45:40

回答

0

首先,没有这样的选择器:first-of-typejQuery,所以在大多数浏览器中。

这是你所需要的:

var items = $('#wrapper .inside > div'); 
items.eq(0).css('display', 'none'); 
items.eq(1).css('display', 'block'); 

注:

  • 您更好的高速缓存的选择结果,并避免第二DOM查询。
  • 可以使用hide功能上的第一个div:items.eq(0).hide();
  • I want to hide the 1st and remove the 2nd layer.
    .css('display', 'block');不删除任何东西!您可能想要使用remove函数:items.eq(1).remove();
+0

那么:http://reference.sitepoint.com/css/pseudoclass-firstoftype? – MarcinJuraszek 2012-03-17 17:47:23

+0

@MarcinJuraszek。谁说jQuery支持它? API中没有这种东西!如果你想选择“第一种类型”,你只需编写'$('{type-like div:first}')'请在投票前检查jQuery文档! – gdoron 2012-03-17 17:49:06

+1

对,我的坏,没有jQuery的支持,但该选择符一般存在:)只是错过了jQuery上下文。 – MarcinJuraszek 2012-03-17 17:52:10