2012-09-13 9 views
5

<p>タグの上にカーソルを置くと、親を1つだけ変更したいと思います。jqueryホバーで片方の親だけを変更する方法

$('.hover').each(function() { 
    $(this).parent().hover(function() { 
      $('p').parent(this).css('font-size','30px'); 
     }, function() { 
      $('p').parent(this).css('font-size','10px'); 
    }); 
}); 

とHTMLは次のとおりです:コードがある

<ul> 
     <li>1 <p class='hover'>xxxx</p></li> 
     <li>2 <p class='hover'>yyyy</p></li> 
    </ul> 

私は "XXXX" の上にカーソルを置く、私は変更する "1" と "XXXX" ではなく "2" と "YYYY" をしたいです何もしないで、 "yyyy"にカーソルを合わせると "2"と "yyyy"が変わりますが、 "1"と "xxxx"は何もしません。

jQueryを初めて使用しました。

+0

本当に私が望むものではありません。 私は再コード化してここに再度投稿しました。 [link](http://stackoverflow.com/questions/12418179/jquery-how-to-change-only-one-parent-closeset-a-tag-on-hover)ありがとうございました – ChooChu

+0

次回は、あなたの質問の下にある「編集」ボタン。これにより、質問を変更することができます。すべての編集に対して新しい質問を作成する必要はありません。今、私たちは誰かが同じ質問でここで終わると、非常に残念である複数の正当な回答を持つ未解決の質問があります。 –

答えて

0

あなたがホバーを追加するために各ループを使用する必要はありません

$('p').closest('li').css('font-size','30px'); 
6
$('p.hover').parent().hover(function() { 
    $(this).children('p').css('font-size','30px'); 
}, function() { 
    $(this).children('p').css('font-size','10px'); 
}); 

を使用することができます。複数の要素が選択されている場合は、すべての要素に対してイベントが適用されます。

これがあると、私はあなたのコードを若干最適化しました。

私はあなたと同じように段落の親にホバーを追加しました。イベントのコールバックで$(this)を使用することで、実際にはホバリングされた要素を選択し、その要素にスタイルを適用できます。

font-sizeを段落に適用したいので、最初に目的の子を選択します。

アップの上に要約

  • 段落要素($('p.hover')
  • li要素(.parent()
  • はホバーイベント(.hover()
を適用し、その親を取得して下さい

ホバーイベントが呼び出されると、次のようになります。

  • 内側の段落(.children('p')
  • はあなたのケースで<p>
0

親が<li>あるスタイルを適用して下さい現在の要素($(this)

  • を取得します。あなたは必要があります:

    $('.hover').parent().parent().hover(
        function() { 
         $(this).css('font-size','30px'); 
        }, function() { 
         $(this).css('font-size','10px'); 
        });