jquery html () удаляет теги сценария

Мне нужно заменить содержимое 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);
                });

Должен быть простой способ.

27
задан Community 23 May 2017 в 11:54
поделиться