javascript-使用DOM方法处理AJAX响应
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-使用DOM方法处理AJAX响应,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1664字,纯文字阅读大概需要3分钟。
内容图文
![javascript-使用DOM方法处理AJAX响应](/upload/InfoBanner/zyjiaocheng/688/fe0cef41bf164acabf12659339f3bd2a.jpg)
我正在通过AJAX检索整个HTML文档-效果很好.但是我需要提取该文档的某些部分并对其进行处理.
不能使用框架(jquery,mootools等).
我能想到的唯一解决方案是使用正则表达式(是的,我知道,这很糟糕)来抓取HTML文档的正文. < body>(.*)< / body>将其放入隐藏元素的当前页面DOM中,然后从那里开始使用.
有没有更简单/更好的方法?
更新资料
我已经进行了一些测试,并且在我测试过的浏览器中,将整个HTML文档插入到创建的元素中的行为有些不同.例如:
> FF3.5:保留HEAD和BODY标签的内容
> IE7 / Safari4:仅包括两者之间的内容…
> Opera 10.10:保留HEAD和其中的所有内容,保留BODY的内容
IE7和Safari的行为是理想的,但是不同的浏览器的行为有所不同.由于我正在加载预定的HTML文档,因此我认为我将使用regEx捕获所需的内容并将其插入DOM元素-除非有人有其他建议.
解决方法:
元素可以不存在于页面本身中而存在.只需将HTML转储到虚拟div中即可.
var wrapper = document.createElement('div');
wrapper.innerHTML = "<ul><li>foo</li><li>bar</li></ul>";
wrapper.getElementsByTagName('li').length; // 2
根据您的修改,由于您需要getElementById,因此我们遇到了麻烦.如果您可以仅通过document.implementation.createDocument创建一个新的虚拟文档,则此问题可能很容易,但是IE完全不支持.
使用正则表达式很麻烦,因为如果我们看到类似< body>< input value =“< / body>”之类的东西,该怎么办? />< / body> ;?您可能只是使您的正则表达式贪婪,这样它就可以移动到< / body>的最后一个实例,但是如果您确实遇到麻烦,则可能需要进行更彻底的解析.即使没有一个完整的框架,您可能最终还是想要使用Sizzle之类的东西(像jQuery这样的库的核心)来查找所需的元素.或者,如果您确实感觉很纯粹,可以自己编写递归搜索功能-但是如果别人已经接受了,为什么还要接受该点击呢?
var response_el = document.createElement('html'), foo;
response_el.innerHTML = the_html_elements_content;
foo = Sizzle('#foo', response_el);
内容总结
以上是互联网集市为您收集整理的javascript-使用DOM方法处理AJAX响应全部内容,希望文章能够帮你解决javascript-使用DOM方法处理AJAX响应所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。