jQuery:删除整个父表

时间:2010-08-12 09:41:19

标签: jquery button html-table

我在带有删除按钮的单独表格中有图像,我想删除单击了删除按钮的表格。

我尝试了$(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;
});

2 个答案:

答案 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();
});

对我来说,上面的代码片段工作正常。如果它仍然不起作用,则错误可能在其他地方。

哦,在这种方法中,表头不会被删除.......