如何显示兄弟姐妹div

时间:2011-08-09 08:43:04

标签: jquery

我需要展示<div>,但它是动态<div>。当我点击任意.info时,我想先显示父级<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     
});

1 个答案:

答案 0 :(得分:1)

您点击的内容不是您要展示的div的后代,因此parent().parent()将无法找到它。它是父元素的上一个兄弟,所以(live example):

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

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

});  

如果您要添加/删除这些div(如果这是“动态”的意思),那么我会使用delegate来处理mainDiv$('#mainDiv').delegate('.info', 'click', function() { $(this).parent().prev('div').show('slow'); }); }):

id

偏离主题:您的HTML无效,您在两个不同的元素上使用了相同的id值(“关闭”)。 id必须在页面上是唯一的。在上面的实例中,我已将{{1}}更改为一个类,并展示了如何使其在静态和动态示例中都有效。