我试图隐藏包含点击链接的父div:
<div class="user" id="request_1">
<div class="information">
<ul>
<li><a href="javascript:void(0)" class="approve_friends agree">Agree1</a></li>
</ul>
</div>
</div>
<div class="user" id="request_2">
<div class="information">
<ul>
<li><a href="javascript:void(0)" class="approve_friends agree">Agree3</a></li>
</ul>
</div>
</div>
<div class="user" id="request_3">
<div class="information">
<ul>
<li><a href="javascript:void(0)" class="approve_friends agree">Agree4</a></li>
</ul>
</div>
</div>
$('.agree').live("click", function(){
var currentId2 = $(this).parent("div:second").attr('id');
alert (currentId2);
$('#'.currentId).hide('slow');
});
所以当我点击Agree1
时,我想要隐藏身份request_1
这是jsfiddle。
任何想法我做错了什么?
由于
答案 0 :(得分:5)
$(this).closest("div.user").hide('slow');
答案 1 :(得分:3)
为什么不这样做:
$('.agree').live("click", function(){
$(this).parents('div.user').hide('slow');
});
答案 2 :(得分:2)
我使用父母代替父母,隐藏元素的行需要一个+号,而不是一个点。
$('.agree').live("click", function(){
var currentId2 = $(this).parents(".user").attr('id');
alert (currentId2);
$('#' + currentId2).hide('slow');
});
答案 3 :(得分:0)
parent()只上升一级,parent('div:second')表示
<li>
),取第二个div并丢弃其余部分(所以最后得到一个空集)。您需要使用parents(selector),这意味着将我所在的所有父母带到顶部,由选择器进行过滤。
.parents()和.parent()方法类似,只是后者只在DOM树中向上移动一层。
此代码按预期工作: http://jsfiddle.net/YThmH/3/