我在带有删除按钮的单独表格中有图像,我想删除单击了删除按钮的表格。
我尝试了$(this).closest("table").remove()
和$(this).parents("table").remove()
,但没有成功。没有任何事情发生。
这是HTML:
<table class='".($i % 2 ? "tbl_img_light" : "tbl_img_grey").">
<tr>
<th rowspan='2'>Image here</th>
<td>Description here
</tr>
<tr>
<td><button class='ad_del_img' value='$filename'>Delete</button></td>
</tr>
</table>
它可能看起来很乱,把它从我的PHP循环中取出
and JS:
$(".ad_del_img").click(function() {
var file = $(this).val();
dataString = "file="+file;
//$(this).closest("table").remove();
$.ajax({
type: "POST",
url: 'controlUI/bin/delete_image.php',
dataType : 'json',
data: dataString,
success: function(data)
{
alert("Success");
$(this).closest("table").remove();
},
error: function(XMLHttpRequest, textStatus, errorThrown)
{
alert("Error");
}
});
return false;
});
答案 0 :(得分:2)
问题是默认情况下不维护上下文,但在jQuery 1.4+中你可以指定context,如下所示:
$.ajax({
context: this, //add this
type: "POST",
url: 'controlUI/bin/delete_image.php',
dataType : 'json',
data: dataString,
success: function(data) {
alert("Success");
$(this).closest("table").remove();
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("Error");
}
});
context
option确定$.ajax()
请求的所有事件处理程序运行时this
的内容,包括success
。
答案 1 :(得分:0)
$('button.ad_del_img').click(function()
{
$(this).closest('table').remove();
});
对我来说,上面的代码片段工作正常。如果它仍然不起作用,则错误可能在其他地方。
哦,在这种方法中,表头不会被删除.......