我需要展示<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
});
答案 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}}更改为一个类,并展示了如何使其在静态和动态示例中都有效。