2013-07-19 22 views
42

Come posso selezionare una classe da quell'oggetto this?Jquery seleziona questa + classe

$(".class").click(function(){ 
     $("this .subclass").css("visibility","visible"); 
}) 

Desidero selezionare un $(this+".subclass"). Come posso farlo con Jquery?

risposta

83

Usa $(this).find(), o passare questo in un contesto, utilizzando jQuery context with selector.

utilizzando $ (this) .find()

$(".subclass").click(function(){ 
    $(this).find(".subclass").css("visibility","visible"); 
}); 

Utilizzando this nel contesto, $(selector, context), sarà internamente chiamare trovare la funzione, quindi meglio usare ricerca primo posto.

$(".subclass", this).click(function(){ 
    $(this).find(".subclass").css("visibility","visible"); 
}); 
+1

Se 'find()' viene chiamato internamente nel secondo metodo, perché lo stai ancora chiamando manualmente? – shaneparsons

11

Usa find()

$(this).find(".subclass").css("visibility","visible"); 
+0

+1 per essere la prima risposta corretta. – zurfyx

20

Forse qualcosa di simile: $(".subclass", this);

+0

Questa è una grande alternativa. utilizzo del contesto +1 – iConnor

+0

@Connor Questa è un'alternativa ma non così eccezionale. Comunque anche +1 –

+0

Apprezzo la tua opinione @roasted – iConnor

3

Quello che state cercando è questo:

$(".subclass", this).css("visibility","visible"); 

Aggiungere il this dopo la classe $(".subclass", this)

+0

Questo mi ha davvero aiutato quando cercavo di animare un SVG per qualcosa e trovare non funzionava come avevo bisogno. – Xander

1

se avete bisogno di un uso trick prestazioni sotto:

$(".yourclass", this); 

Il metodo find() effettua una ricerca ogni volta nel selettore.

1

Bene utilizzando trovare è l'opzione migliore qui

semplicemente usare come questo

$(".class").click(function(){ 
     $("this").find('.subclass').css("visibility","visible"); 
}) 

e se ci sono molte classi con la stessa classe nome la sua sempre meglio dare il nome della classe di classe genitore come questa

$(".parent .class").click(function(){ 
      $("this").find('.subclass').css("visibility","visible"); 
    }) 
Problemi correlati