我有一个显示朋友请求的php文件,假设有4个请求。当用户点击“接受”或“拒绝”链接时,我想用“request_buttons”类隐藏div,但问题是它还隐藏了其他3个div,我只想隐藏按下链接的div。
我的HTML代码是:
<div class="request_buttons">
<a href="#" onclick="accept(<?php echo $cerere['id']; ?>)">accept</a>
<a href="#" onclick="refuse(<?php echo $cerere['id']; ?>)">refuse</a>
</div>
<span class="result"></span>
和javascript是:
function accept(id)
{
$.ajax({
type: "POST",
url: "request.php?action=accept",
data: "id="+id,
success: function(){
$('.request_buttons').hide();
$('.result').html('Request accepted');
}
});
}
LE:使用Royi Namir提供的代码,我得到了一个解决方案(错误地)。 我将html修改为:
<div id="2">
<div class="request_buttons">
<a href="#" onclick="accept(2)">accept</a>
<a href="#" onclick="refuse(2)">refuse</a>
</div>
<div class="result"></div>
</div>
和jquery用这个:
function accept(id)
{
t = $('#'+id);
$.ajax({
type: "POST",
url: "request.php?action=accept",
data: "id="+id,
success: function(){
$(t,'.result').first().html('Accepted');
}
});
}
它有效,div“request_buttons”消失,消息出现。我不知道它是如何工作的!
答案 0 :(得分:3)
div class="request_buttons">
<a href="#" onclick="accept(this);">accept</a>
<a href="#" onclick="refuse(this);">refuse</a>
</div>
function accept(obj)
{
t = $(obj);
$.ajax({
type: "POST",
url: "request.php?action=accept",
data: "id="+id,
success: function(){
t.parent(".request_buttons").hide();
$('.result').html('Request accepted');
}
});
}
答案 1 :(得分:2)
在您的代码中,替换
$.ajax({
type: "POST",
url: "request.php?action=accept",
data: "id="+id,
success: function(){
$('.request_buttons').hide();
$('.result').html('Request accepted');
}
});
与
$.ajax({
type: "POST",
url: "request.php?action=accept",
context: $('#'+id),
success: function(){
$(this).parents('.request_buttons').hide();
$('.result').html('Request accepted');
}
});
答案 2 :(得分:0)
您可以使用jquery父函数。试试$(this).parent().hide()