2010-08-26 152 views
2

我在菜单中使用鼠标悬停功能。我选择了一个使用它的类的特定元素。要仅对该元素进行更改,而不是使用该类的所有元素,则可以使用“this”。但我想修改该类元素中的h3标签。再次,我已经徘徊,而不是所有具有该类名称的元素。jQuery Selector问题?

我试过在'this'后面使用>元素,但它不起作用。

我该怎么做?我希望我已经解释得很好。我希望你了解使用代码。

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

所有答案赞赏。 谢谢

回答

4

您使用.find()来获得this<h3>元素。

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

如果<h3>是直接的孩子,这是一个有点更有效地使用.children()

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

用途:

$(this).find('h3') 

或者:

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

上下文可以是DOM元素。无需额外的$。好的,我发现这是为了'.find'而编辑出来的 – 2010-08-26 19:37:41

1

试试$(this).find("h3")而不是$(this>'h3')

2

试试这个:

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

你应该使用$(本).find( 'H3')作为

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

,或者如果你只希望H3:直接Š.slide下方你可以使用

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

以上所有答案都是正确的。你的选择器不工作的原因是普通的'this'关键字指向了实际的DOM元素。你必须像这样在jQuery对象中包装'this':$(this),然后才能使用任何jQuery方法。