2012-03-17 3 views
0

Я создаю фотогалерею и вам необходимо применить CSS к первой фотографии в пределах моего div #wrapper. Вот соответствующий код: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 DIV назначены класс .inside (этот класс удаляется, как только они скользят за пределами #wrapper). Каждая фотография имеет два div-слоя. В этом случае я хочу скрыть 1-й и удалить второй слой. Я думал, что вышеприведенный код будет работать, и это произойдет, но только если будет показана первая фотография серии, иначе она ничего не сделает.

Является ли мой CSS неправильным здесь?

+2

Как насчет публикации HTML? – j08691

+0

Я не думаю, что «из-типа» действительно. Вы бы сделали .inside: сначала, а затем div: nth-child (1) и div: nth-child (2) –

+0

@ DanielLorenz. Вы правы, нет! если вы хотите тип, вы просто пишете тип ... – gdoron

ответ

0

Во-первых, такого селектора нет: first-of-type в jQuery, и так в большинстве броузеров.

Это то, что вам нужно:

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

+0

@MarcinJuraszek. Кто сказал, что jQuery поддерживает его? в API нет такой вещи! Если вы хотите выбрать «первый тип», вы просто пишете '$ ('{type-like div: first}')' Пожалуйста, проверьте документ jQuery перед тем, как проголосовать! – gdoron

+1

Правильно, мое плохое, для этого нет поддержки jQuery, но этот селектор существует вообще :) Просто пропустил контекст jQuery. – MarcinJuraszek