4

有没有办法从典型的 ajax 函数中获得响应,以便可以使用 getElements 对其进行剖析?我试过query.responseText.getElementById了,但效果和看起来一样糟糕。不过,您应该能够通过查看该片段来了解我想要实现的目标。我只需要以与普通 DOM 对象相同的方式从 ajax 响应中获取元素。

另外,请不要建议使用 jQuery。当我有很多脚本并且可以使用它的很多功能时,我会使用它,但在这种情况下,我只有一个简短的脚本和一个 70 倍大小的库,这似乎是一种浪费。

4

4 回答 4

4

解析 SVG 或 HTML 文档

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

doc将是一个有效的 html 文档。

于 2017-05-06T06:57:29.283 回答
3

好吧,您可以div在您的页面上隐藏一个并将它的 innerHTML 设置为您收到的 Ajax 响应。然后您可以调用div.getElementById(),因为它只是另一个 DOM 对象。

于 2011-03-27T08:12:05.980 回答
2

参考这篇文章:Parsing XML response in Ajax

在这种情况下,我使用responseXML. 您可以使用 getElementsByTagName 和其他 getElement*() 方法来获取数据。

于 2011-03-27T08:06:40.643 回答
1

如果您的回复是 TEXT,我见过 ppl 使用 ... xhr.responseText.spit('html>...body>...div id="yourTargetsParent">')[1].split('/div >.../body>.../html>')[0]; //只是拆分字符串!

另一种方法是使用iframe.contentWindow.document.body ...(或某些浏览器的 contentDocument)...只需隐藏 iframe 即可。

显然,如果您可以控制完全改变事物的目标(这篇文章可能不会在这里),但我也看到了一些关于目标使用脚本编写其主机 dom、localStorage、拆分/连接的平均解决方法, webSQLDatabases, ...用于字符串操作。

老实说,我曾经使用隐藏的 div(谢谢 sleepysamurai!),但我认为我遇到了更多 getElementById/jQuery.load 类型的方式。..如果我找到它会回帖...

于 2012-06-27T06:11:44.307 回答