2013-01-10 9 views
9

Czy ktoś wie, czy jest możliwe zdefiniowanie selektora CSS, który wybiera pierwszy obraz w div, ale tylko wtedy, gdy jest pierwszym dzieckiem w div.Przełącznik CSS dla pierwszego obrazu, tylko jeśli pierwsze dziecko

w jQuery Chciałbym użyć porównania, coś takiego ...

if ($('#div img:first-child') == $('#div>*:first-child')) { 
    ... 
} 
+1

To nie jest sposób porównywania wyników dwóch selektorów jQuery. Zamiast tego należy użyć [.is() '] (http://api.jquery.com/is). – BoltClock

Odpowiedz

11

By definition of "first-child", selektor (zakładając, że div miał id z div)

#div img:first-child 

już robi. Pierwszy obraz z dowolnego div jest

div img:first-child 

Jednak, jak zaznacza odpowiedź BoltClock za potrzebne jest selektor dziecko czy może masz img elementy zagnieżdżone głębiej w div.

+0

http://jsfiddle.net/uY9cE/1/ –

3

To prosty selektor CSS:

#div:first-child img:first-child 
+2

Działa to tylko wtedy, gdy '# div' jest pierwszym dzieckiem swojego rodzica, którego nie wymieniono nigdzie w pytaniu. – BoltClock

12

Nie trzeba robić porównania w jQuery, jeśli wszystko chcesz to wybrać: img. Po prostu połącz dwa selektory w następujący sposób:

#div > img:first-child 

Działa zarówno w jQuery, jak i CSS.

+1

Prawda, selektor podrzędny byłby potrzebny, jeśli mogą istnieć inne zagnieżdżone elementy "div". – ScottS

+1

Lub, jeśli o to chodzi, wszelkie inne elementy zagnieżdżone, których 'img' może być pierwszym dzieckiem pod' div'. – ScottS

Powiązane problemy