使用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測試經過。 測試