2010-12-10 7 views
0

J'ai la sélection ci-dessous, est-il possible de faire fonctionner cette sélection avec $ (this)?

(sélectionnez le deuxième enfant div de .container)

$(".container div:eq(2)").width(); 
+0

Est-ce que '$ (this)' fait référence à '$ ('. container')'? – BoltClock

+0

oui, cela fait référence à $ ('. Container') – ThomasReggi

+0

@Thomas, quel que soit l'élément html attaché à l'événement, $ (this) n'est rien d'autre que cet élément ... référence – kobe

Répondre

1

Essayez

$(".container").each(function(){ 
    $(this).find("div:eq(2)"); // if its not a direct child 
}); 
0

Qu'est-ce que vous avez il y a déjà bien. Pourquoi voulez-vous utiliser $(this)? Vous utiliseriez $(this) à titre d'exemple, dans une fonction:

$(".container div:eq(2)").click(function() { 
    if($(this).width > 100) { 
     ... 
    } 
}); 
+0

Je reconstitue un "plugin" qui consiste à sélectionner $ (". container div: eq (2)"). width(), en essayant Penser à un moyen de passer dans le div le plus externe en tant que variable et je dois utiliser $ (this). – ThomasReggi

+1

Qu'en est-il de l'utilisation de '$ (this) .parent()'? – matthewpavkov

+0

: eq (2) est presque identique à: nth-child (3) Pourquoi suggérez-vous d'aller dans le sens inverse? – ThomasReggi

0

Quel est le problème avec:

$(this).find("div:eq(2)").width() 

ou:

$("div:eq(2)", this).width() 

?

BTW qui renvoie la largeur de la troisième div descendant de this (qui, contrairement div: nth-enfant (2) peut ou peut ne pas avoir deux frères et sœurs devant elle,: eq() se réfère à la position dans la mise en correspondance pseudo-tableau, pas dans le DOM)