2013-01-10 11 views
9

Qualcuno sa se è possibile definire un selettore CSS che seleziona la prima immagine all'interno di un div, ma solo se è il primo figlio all'interno del div.Selettore CSS per la prima immagine, solo se il primo figlio

In jQuery vorrei usare un qualcosa di confronto come questo ...

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

Questo non è il modo in cui si confrontano i risultati di due selettori jQuery. Devi invece usare ['.is()'] (http://api.jquery.com/is). – BoltClock

risposta

11

By definition of "first-child", il selettore (supponendo che il div ha avuto un id di div)

#div img:first-child 

fa già questo. Prima immagine di qualsiasi div è

div img:first-child 

Tuttavia, come la risposta di BoltClock sottolinea, il selettore bambino è necessaria se si può avere img elementi annidati più in profondità nella div.

+0

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

3

E 'un semplice selettore CSS:

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

Funziona solo se '# div' stesso è il primo figlio del suo genitore, che non è menzionato da nessuna parte nella domanda. – BoltClock

12

Non c'è bisogno di fare un confronto in jQuery se tutto vuoi fare è selezionare quello img. Basta combinare i due selettori in questo modo:

#div > img:first-child 

Questo funziona sia in jQuery che in CSS.

+1

Vero, il selettore figlio sarebbe necessario se potrebbero esserci altri elementi 'div' nidificati. – ScottS

+1

Oppure, per quanto detto, qualsiasi altro elemento annidato che 'img' potrebbe essere il primo figlio di sotto div. – ScottS

Problemi correlati