2012-03-17 48 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