有没有办法从典型的 ajax 函数中获得响应,以便可以使用 getElements 对其进行剖析?我试过query.responseText.getElementById
了,但效果和看起来一样糟糕。不过,您应该能够通过查看该片段来了解我想要实现的目标。我只需要以与普通 DOM 对象相同的方式从 ajax 响应中获取元素。
另外,请不要建议使用 jQuery。当我有很多脚本并且可以使用它的很多功能时,我会使用它,但在这种情况下,我只有一个简短的脚本和一个 70 倍大小的库,这似乎是一种浪费。
有没有办法从典型的 ajax 函数中获得响应,以便可以使用 getElements 对其进行剖析?我试过query.responseText.getElementById
了,但效果和看起来一样糟糕。不过,您应该能够通过查看该片段来了解我想要实现的目标。我只需要以与普通 DOM 对象相同的方式从 ajax 响应中获取元素。
另外,请不要建议使用 jQuery。当我有很多脚本并且可以使用它的很多功能时,我会使用它,但在这种情况下,我只有一个简短的脚本和一个 70 倍大小的库,这似乎是一种浪费。
parser = new DOMParser();
doc = parser.parseFromString(stringContainingHTMLSource, "text/html");
doc将是一个有效的 html 文档。
好吧,您可以div
在您的页面上隐藏一个并将它的 innerHTML 设置为您收到的 Ajax 响应。然后您可以调用div.getElementById()
,因为它只是另一个 DOM 对象。
参考这篇文章:Parsing XML response in Ajax
在这种情况下,我使用responseXML
. 您可以使用 getElementsByTagName 和其他 getElement*() 方法来获取数据。
如果您的回复是 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 类型的方式。..如果我找到它会回帖...