Мне нужно заменить содержимое div на моей странице html-результирующим результатом вызова ajax. Проблема заключается в том, что в html есть некоторые необходимые скрипты, и кажется, что функция jquery html() выделяет их, Мне нужно отфильтровать ответ и получить только определенный div.jquery html() удаляет теги скриптов
Я думаю об обходном пути, который должен извлечь все теги сценария из ответа 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 tags in the HTML are parsed out by jQuery and not executed
но любое заключение. Я попробовал предлагаемые решения, но никто из них не работает.
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);
});
Должен быть простой способ.
ест младенцев, ха-ха-ха! –
'.innerHTML' работает нормально, но скрипт внутри нового контента не запускается ... любая идея? – agpt
@Aman, пожалуйста, задайте вопрос с объяснением того, что вы пытаетесь сделать, что вы пробовали и как он терпит неудачу. – eyelidlessness