无法更改响应元素

时间:2014-09-03 16:16:31

标签: javascript jquery ajax response

我可以从AJAX响应中过多一个td元素但不能改变它。

$('#addjob').click(function(){
    $.ajax({
        type:"POST",
        url: 'invoicelist.php',
        success: function(response){
            $('#forajax').append(response);
            $(response).find('.heading').html();
        }
    });
});

此代码效果很好,并从<td class='heading'>123</td>中选择文本,但如果我想更改此123结果,我会写$(response).find('.heading').html('456');但它并没有真正改变任何内容。 有什么建议?

3 个答案:

答案 0 :(得分:0)

更改它,然后追加。该内容与该变量无关:

$(response).find('.heading').html('456');
$('#forajax').append(response);

答案 1 :(得分:0)

您正在将原始HTML写入#forajax容器,然后创建一个内容为response的新jQuery对象。对新对象的任何更改都将被丢弃;它们与您编写的HTML无关。

首先获取对象,修改它,然后追加:

// create a jQuery object wrapping the returned HTML
var r = $(response);

// update the contents of our new object
r.find('.heading').html('456');

// add the new, updated object to our container
r.appendTo('#forajax');

答案 2 :(得分:0)

响应中的更改将在响应文本中更改,但不会在附加的DOM对象中更改。所以相反,搜索你附加的dom元素,并在那里

$('#addjob').click(function(){
    $.ajax({
        type: "POST",
        url: 'invoicelist.php',
        success: function(response){
            $( '#forajax' ).append(response);
            $( '#forajax' ).find('.heading').html( '456' );
        }
     });   
});