jQuery类后代未按计划访问

时间:2012-03-17 17:40:06

标签: jquery css

我正在构建一个照片库,需要在我的#wrapper div视图中将一些CSS应用到第一张照片。这是相关的代码:

$('.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 div视图中的所有元素都被赋予了类.inside(这个类在它们滑到#wrapper之后被删除)。每张照片都有两个div层。在这种情况下,我想隐藏第一层并删除第二层。我认为上面的代码可以工作,但确实如此,但只有当系列的第一张照片在视图中时,否则它什么都不做。

我的CSS在这里错了吗?

1 个答案:

答案 0 :(得分:0)

首先,first-of-type中没有这样的选择器:jQuery,大多数浏览器都是如此。

这就是你需要的:

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

注意:

  • 您最好缓存选择器结果,并避免第二个DOM查询。
  • 您可以在第一个div hide
  • 上使用items.eq(0).hide();功能
  • I want to hide the 1st and remove the 2nd layer.
    .css('display', 'block');不删除任何内容!您可能希望使用remove函数:items.eq(1).remove();