使用ajax获取一个页面时,不少时候只是想要其中某个节点的数据,可是整个页面节点那么多,用正则表达式又很差匹配,相信不少人都但愿能用getElementById来获取,这样多方便啊。 javascript
但是,要用getElementById就必须先将ajax的response字符串转换成DOM才行,这是最困扰的地方。以前试了不少方法都没能成功,经不懈努力,嘿嘿,看下文吧。 html
<iframe name=abc style="display:none"></iframe> <input type="button" value="点我" onclick="swrite()"> <script language="javascript"> function swrite() { data = "<html><head><title>New Document</title></head><body><input type='text' value='123' id='test'></body></html>"; abc.document.write(data); abc.document.close(); alert(abc.document.getElementById("test").value); } </script>
<iframe>必须是事先写在页面中的,不能用createElement动态建立; java
这里用data模拟ajax的response; ajax
将字符串写入iframe,须要用write(),而不能用innerHTML,以前尝试时都是使用innerHTML致使一直失败; 正则表达式
close()是为了关闭write()的流,否则浏览器会一致处于加载状态; 浏览器
最后就能够用求之不得的getElementById()函数了,呼呼~ 函数
IE8,FireFox,Chrome测试经过。 测试