JQuery最近没有找到类

时间:2014-05-24 10:58:39

标签: jquery

我有以下结构,它有几行,如:

<tr class="tableRow">
    <td>blah</td>
    <td>blah</td>
    <td><button id="13" class="deleteMailshot" type="button"></button></td>
</tr>

我想执行ajax调用以删除所选择的邮件,然后删除该行。

我使用的是.closest(),但它没有找到它......这就是我正在尝试的内容:

$.ajax({
    type: "POST",
    url: '/ajax/actions/deleteMailshot.php',
    data: {mailshot_id:mailshot_id},
    success:  function(data) {
        $(this).closest('.tableRow').fadeOut();
    }
});

我也尝试过:

$(this).parent().parent('.tableRow').fadeOut();

3 个答案:

答案 0 :(得分:4)

将此分配给AJAX之前的变量。这指的是success上匿名函数内的其他内容。

E.g。

var $button = $(this);

然后使用:

$button.closest...

答案 1 :(得分:3)

试试这个

var self = $(this);
$.ajax({
  ....
  success:  function(data) {
    self.closest('.tableRow').fadeOut(); // use self

答案 2 :(得分:3)

您可以使用context选项进行ajax调用,以控制成功处理程序中this指针的设置内容:

$.ajax({
    type: "POST",
    url: '/ajax/actions/deleteMailshot.php',
    data: {mailshot_id:mailshot_id},
    context: this,
    success:  function(data) {
        $(this).closest('.tableRow').fadeOut();
    }
});

默认情况下,成功处理程序中的this指向调用中使用的ajax设置对象,但如果不需要对该对象的引用,则设置context属性允许您保持this与调用$.ajax()时相同,以便您可以直接使用它,而无需在其他答案中提供解决方法。