Jquery:在post回调中更改子属性

时间:2013-05-23 20:25:16

标签: jquery dom

我正在尝试在POST成功回调中更改DOM子项的值:

$('body').on('click','.btn_like', function(e) {
    e.preventDefault();
    $.post($(this).attr('href'), function(data) {
        $(this).children('.nb_like').text('data');
    });
});

我不知道为什么这不起作用!我能想到的是this变量在回调中可能有所不同,但我对Jquery一无所知,所以我不知道如何修复它!

如果我把$(this).children('.nb_like').text('data');放在帖子之外,那么它的工作正常,所以这真的是让我恼火的请求!

1 个答案:

答案 0 :(得分:2)

定义上下文变量:

$('body').on('click','.btn_like', function(e) {
    e.preventDefault();
    var that = $(this);

    $.post($(this).attr('href'), function(data) {
        that.children('.nb_like').text('data'); <--This appends the string of "data", remove the quotes if you want to append your callback data.
    });
});