使用iframe实现将字符串转换成DOM对象

使用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测试经过。 测试

相关文章
相关标签/搜索