0

我正在尝试在发布请求后运行父级删除,但它似乎不起作用。

知道为什么吗?这是我的代码。理想情况下,我希望它删除 $currentId 找到的元素。

$('#chat').on('click', '.delete', function () {
    var $currentId = $(this).parent().attr('id');
    $.post("assets/delete.php",{ id: $currentId },function(data)
        {
        $(this).parent().remove();
        }
    );
});
4

3 回答 3

4

你改变了范围。尝试这个:

$('#chat').on('click', '.delete', function () {
    var parent = $(this).parent();
    var $currentId = parent.attr('id');
    $.post("assets/delete.php",{ id: $currentId },function(data)
        {
        parent.remove();
        }
    );
});
于 2013-07-28T21:54:14.460 回答
1

它不起作用,因为$(this)内部$.post引用$.post而不是$('#chat').

尝试这个:

$('#chat').on('click', '.delete', function () {
    var $currentId = $(this).parent().attr('id');
    var that = $(this); 
    $.post("assets/delete.php",{ id: $currentId },function(data)
        {
        that.parent().remove();
        }
    );
});
于 2013-07-28T21:54:42.023 回答
0

'post' 完成后,你的 'this' 并不是指你认为的元素。你必须使用 $('#chat').parent().remove()

编辑:杰克的答案更好,因为它不需要找到 ID = 聊天的元素。将它分配给一个临时变量(在他的例子中,就是那个)是一个更快的选择。

于 2013-07-28T21:54:57.843 回答