2010-08-26 4 views
2

J'utilise la fonction Hover pour passer la souris dans un menu. J'ai sélectionné un élément particulier en utilisant sa classe. Pour modifier uniquement cet élément et pas tous les éléments de cette classe, je peux utiliser 'ceci'. Mais je veux apporter des modifications à la balise h3 à l'intérieur de cet élément de classe. Encore celui sur lequel j'ai plané et pas tous les éléments avec ce nom de classe.Problème de sélecteur jQuery?

J'ai essayé d'utiliser l'élément> après 'ceci' mais cela ne fonctionne pas.

Comment faire cela? J'espère avoir assez bien expliqué. J'espère que vous comprenez en utilisant le code.

$('.slide').hover(
    function(){ 
     $(this>'h3').animate({ 
      height: '100%' 
     }); 
    }, 
    function(){ 
     $(this>'h3').animate({ 
      height: '25px' 
     }); 
    } 
); 

Toutes les réponses ont apprécié. Merci

Répondre

4

Vous utilisez .find() pour obtenir l'élément <h3> à l'intérieur this.

$('.slide').hover(
    function(){ 
     $(this).find('h3').animate({ 
      height: '100%' 
     }); 
    }, 
    function(){ 
     $(this).find('h3').animate({ 
      height: '25px' 
     }); 
    } 
); 

Si le <h3> est un enfant direct, il est un peu plus efficace d'utiliser .children():

$(this).children('h3').animate({ 
1

Utilisation:

$(this).find('h3') 

Ou:

$(this).children('h3') 
+0

Le contexte peut être un élément DOM. Pas besoin de $ supplémentaire. OK, je vois que cela a été édité en faveur de '.find' –

1

Essayez $(this).find("h3") au lieu de $(this>'h3').

2

Essayez ceci:

$(this).children('h3').animate(); 
1

Vous devez utiliser $ (this) .Find ('h3') comme dans

$('.slide').hover(
    function(){ 
     $(this).find('h3').animate({ 
      height: '100%' 
     }); 
    }, 
    function(){ 
     $(this).find('h3').animate({ 
      height: '25px' 
     }); 
    } 
); 

ou si vous voulez seulement le h3: s directement sous .slide vous pouvez utiliser

$(this).children('h3') 
0

Toutes les réponses ci-dessus sont correctes. La raison pour laquelle votre sélecteur n'a pas fonctionné est que le mot clé 'this' pointe vers l'élément DOM réel. Vous devez envelopper 'this' dans un objet jQuery comme tel: $ (this) avant de pouvoir utiliser des méthodes jQuery.