Мне нужно заменить содержимое div на моей странице на html, полученный из вызова ajax. Проблема в том, что html содержит в себе некоторые необходимые скрипты, и кажется, что функция jquery html() выделяет их, Мне нужно отфильтровать ответ и получить только определенный div.
Я думаю об обходном пути, который заключается в том, чтобы извлечь все теги script из ответа ajax, а затем добавить их в DOM, но у меня возникают проблемы с этим.
Вот мой код;
$('a.link-vote').live('click',function(){
var idfeedback = $(this).attr('id').split('-')[1];
var href = $(this).attr('href');
$('.feedback-' + idfeedback + '-loader').show();
$.ajax({
type: "POST",
url: href,
success: function(response){
var x = $(response).find('#feedback-'+ idfeedback).html();
$('.feedback-' + idfeedback + '-loader').hide();
$('#feedback-'+ idfeedback).html(x);
}
});
return false;
});
Я нашел эту старую тему: jQuery - script теги в HTML обрабатываются jQuery и не выполняются
но это любой вывод. Я пробовал предлагаемые решения, но никто из них не работает.
EDIT: Кажется, я нашел обходное решение, основанное на этой старой теме, но это не красиво;
var dom = $(response);
// var x = $(response).find('#feedback-'+ idfeedback).html();
$('.feedback-' + idfeedback + '-loader').hide();
//$('#feedback-'+ idfeedback).html(x);
$('#feedback-'+ idfeedback).html(dom.find('#feedback-'+ idfeedback).html());
dom.filter('script').each(function(){
var obj = $(this);
$('#feedback-'+ idfeedback + ' .feedback-comments').append(obj);
});
Должен быть простой способ.