2011-08-09 77 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):

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

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

}); 

如果要添加/删除这些div(如果这是你的“动态”的意思),那么我会使用delegate在处理这在mainDiv水平(live example):

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

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

}); 

题外话:你的HTML是无效的,你两种不同的元素上使用的相同id值( “亲密”)秒。 id必须在页面上是唯一的。在上面的实例中,我已将id更改为一个类,并演示了如何使它在静态和动态示例中都能正常工作。

+0

下垂者是否愿意分享一些有用的反馈?我没有看到问题。答案很清楚,有代码示例,有实例,并且与OP发布的标记一起工作。 –