2010-08-26 121 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方法。