Ответ Ajax как объект DOM - PullRequest
2 голосов
/ 27 марта 2011

Есть ли способ получить ответ от типичной функции ajax, чтобы ее можно было проанализировать с помощью getElements?Я пробовал query.responseText.getElementById, но он работает так же плохо, как и выглядит.Вы должны быть в состоянии сказать, чего я пытаюсь достичь, увидев этот фрагмент.Мне просто нужно получить элементы из ответа ajax так же, как и обычный объект DOM.

Также, пожалуйста, не предлагайте использовать jQuery.Я использую его, когда у меня много сценариев и я могу использовать много его функций, но в этом случае у меня есть только короткий сценарий и библиотека, размер которой в 70 раз больше, чем просто пустая трата.

Ответы [ 4 ]

2 голосов
/ 27 марта 2011

Ну, вы могли бы иметь скрытую div на своей странице и установить ее innerHTML в ответ Ajax, который вы получаете.После этого вы можете вызвать div.getElementById(), поскольку это просто еще один объект DOM.

1 голос
/ 06 мая 2017

Разбор документа SVG или HTML

parser = new DOMParser();
doc = parser.parseFromString(stringContainingHTMLSource, "text/html");

документ будет действительным HTML-документом.

1 голос
/ 27 марта 2011

См. Эту статью: Анализ XML-ответа в Ajax

В этом случае я использую responseXML. Вы можете использовать getElementsByTagName и другие методы getElement * () для получения ваших данных.

0 голосов
/ 27 июня 2012

Если ваш ответ - TEXT, я видел, как ppl использовал ... xhr.responseText.spit ('html> ... body> ... div id = "yourTargetsParent">') [1] .split ('/ div> ... / body> ... / html>') [0]; // просто разбить строку вверх!

Другой способ - использовать iframe.contentWindow.document.body ... (или contentDocument для некоторых браузеров) ... просто скрыть iframe, который вы знаете.

Очевидно, что если у вас есть контроль над целью, которая полностью меняет положение вещей (и этот пост, вероятно, не будет здесь), но я также видел некоторые средние обходные пути с использованием целью сценариев для сценария своего хоста dom, localStorage, разбивает / объединяет, базы данных webSQL, ... для работы со строками.

Честно говоря, я использовал скрытый div (спасибо asleepysamurai!), Но мне показалось, что я нашел способ типа getElementById / jQuery.load. ..Я отправлю обратно, если найду ...

...