2014-09-03 5 views
0

Я могу удалить td-элемент из ответа AJAX, но не могу его изменить.Невозможно изменить элемент ответа

$('#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');, но это не реально изменить что-либо. любые предложения?

ответ

0

Вы пишете необработанный HTML в свой #forajax контейнер, а затем создать новый объект JQuery с содержимым response. Любые изменения в новом объекте будут отброшены; они не имеют никакого отношения к 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'); 
+0

Это сработало очень приятно ... но я не мог понять, почему. не могли бы вы охарактеризовать это еще раз для меня? – funny

+0

комментарии добавлены в –

0

Измените его, затем добавьте. Это содержание не связано с этой переменной:

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

Изменение в repsonse изменится в тексте ответа, но не добавляется объект DOM. так что вместо этого найдите элемент dom, где u добавлен и там есть

$('#addjob').click(function(){ 
    $.ajax({ 
     type: "POST", 
     url: 'invoicelist.php', 
     success: function(response){ 
      $('#forajax').append(response); 
      $('#forajax').find('.heading').html('456'); 
     } 
    }); 
}); 
Смежные вопросы