2011-08-09 9 views
0

<div>を表示する必要がありますが、それは動的です<div>です。 .infoをクリックすると、最初に親を表示したい<div>。ここで兄弟の親Divを表示する方法

が私のコードです:

HTML:

<div id="mainDiv"> 
    <div class="myBox"> 
    <p><a href="#" id="close">Close</a></p> 
     Fist Div 
    </div> 

    <h5>Title <img src="info.gif" class="info" /></h5> 
    <div class="myBox"> 
    <p><a href="#" id="close">Close</a></p> 
     Second Div 
    </div> 

    <h5>Title <img src="info.gif" class="info" /></h5> 

</div> 

Javascriptを:

$('.info').click(function(e){ 

    var ppp=$(this); 
    var parentDiv = $(this).parent().parent(); 
    parentDiv.show('slow'); // doesn't work  
}); 
+0

"dynamique" divはどういう意味ですか? – kinakuta

+0

そしてあなたはどんなdivを正確に見せたいですか? –

答えて

1

あなたはをクリックしている事は、表示したいdiv要素の子孫ではありません、だからparent().parent()は見つからないでしょう。それはとても親要素の前の兄弟、(live example)です:あなたはこれらのdivを削除/追加する場合(つまり、あなたが「ダイナミック」で何を意味するかの場合)

$('.info').click(function(e){ 

    $(this).parent().prev('div').show('slow'); 

}); 

、その後私はでこれを処理するためにdelegateを使用したいですmainDivレベル(live example):オフトピック

$('#mainDiv').delegate('.info', 'click', function() { 

    $(this).parent().prev('div').show('slow'); 

}); 

:あなたのHTMLが無効である、2つの異なる要素に同じid値( "クローズ")を使用しましたs。 idは、がページ上で一意である必要があります。上のライブサンプルでは、​​idをクラスに変更し、静的と動的の両方の例で動作させる方法を示しました。

+0

downvoterはいくつかの有用なフィードバックを共有したいですか?私は問題を見ていない。答えは明確で、コード例があり、実例があり、OPがマークアップしたものを使っています。 –

関連する問題