Мне нужно заменить содержимое div на моей странице на html, полученный в результате вызова ajax. Проблема в том, что в html есть некоторые необходимые скрипты, и кажется, что функция jquery html () их убирает, Мне нужно отфильтровать ответ и получить только конкретный div.
Я думаю об обходном пути, который состоит в том, чтобы извлечь все теги сценария из ответа 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 - теги сценария в HTML разбираются с помощью jQuery и не выполняются
, но вывод напрашивается. Я пробовал предложенные там решения, но ни одно из них не работает.
РЕДАКТИРОВАТЬ: Похоже, я нашел обходной путь, основанный на этой старой теме, но он не очень хорош;
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);
});
Должен быть простой способ.