2010-12-20 16 views
8

ehi, domanda veloce, non ho trovato nulla sul web. Ho un genitore div e un div bambino dentro di esso. per selezionarlo con i CSS si potrebbe dire:jquery questo selettore di figlio?

#parent .child {} 

in jQuery ho un var per il mio elemento padre, però come posso selezionare il bambino con questo? So che è facile creare una nuova var, sono curioso di sapere se è possibile?

var Parent = $('#parent'); 

Parent.click(function() { 
$(this > '.child').hide(); 

grazie

+0

Si noti che il [selettore di 'EF'] (http://www.w3.org/TR/CSS2/selector.html#descendant-selectors) corrisponde non solo elementi figlio ma * qualsiasi * discendente elemento di 'E'. Per i bambini usa solo ['E> F'] (http://www.w3.org/TR/CSS2/selector.html#child-selectors). – Gumbo

risposta

23

La sintassi corretta è:

$(".child", this) 

Se desideri solo i diretti figli:

$("> .child", this) 

(credito va a Gumbo per menzionando questo)

Update, due anni più tardi:

È possibile utilizzare $(this).find('> .child')

+0

+1 Ho usato questa soluzione :) –

1

provare questo codice:

$("#parent").click(function() { 
       $(this).next().hide(); 
}); 
1
var Parent = $('#parent'); 

Parent.click(function() { 
    $(".child", this).hide(); 
}); 

o

$("#parent").click(function() { 
    $(".child", this).hide(); 
}); 
6

Si può solo richiamare il metodo .find():

var Parent = $('#parent'); 

Parent.click(function() { 
    $(this).find('.child').hide(); 
}); 

Se si desidera solo selezionare i figli diretti, utilizzare il metodo .children() invece:

Parent.click(function() { 
    $(this).children('.child').hide(); 
}); 

Le persone usano spesso una sintassi simile

$('.child', this); 

. Non è molto conveniente per me dato che scrivi un ordine "inverso" in qualche modo. Ad ogni modo, questa sintassi viene convertita internamente in un'istruzione .find(), quindi in realtà stai salvando una chiamata.

Ref .: .find(), .children()

1

U può trovare figli del tuo elementi padre e applicare CSS.

Il codice di esempio è di seguito.

var Parent = $('#parent'); 

Parent.click(function() { 
$(this).find('.child').hide();});