Не удалось изменить возвращенную переменную AJAX - PullRequest
0 голосов
/ 20 января 2011

В настоящее время у меня есть следующий скрипт JavaScript / jQuery, который получает внешнюю HTML-страницу с помощью AJAX и запускает функцию на всех ее текстовых узлах.

$.get('webpage.html', function (html) {
    $(html).find('*').each(function () {
        $(this).contents().filter(function () { return this.nodeType === 3 }).each(function () {
            this.nodeValue = foo(this.nodeValue);
            console.log(this.nodeValue);
        });
    console.log(html);                      
});

Однако, хотя зарегистрированные значения нового текстового узла изменились и все являются правильными, когда я пытаюсь зарегистрировать html в конце, я просто получаю то, с чего начал, исходную внешнюю веб-страницу без каких-либо изменений в ней.

Что я делаю не так?

DLiKS

1 Ответ

2 голосов
/ 20 января 2011

Запись $(html) и манипулирование деревом результатов DOM не может изменить исходную строку.

Вместо этого вы можете написать

var content = $('<div>' + html + '</div>');
//Modify content
html = content.html();

Оборачивая HTML в <div>, я легко могу получить полный исходный код.

Я написал более подробное объяснение в своем блоге.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...