[問題] HTML String 轉 DOM

作者: vvrr (vvrr)   2014-04-16 19:19:25
因為工作上的需要,要把一個HTML字串利用javascript轉成DOM
查到的方法是
「先建一個div 元素,再把字串塞給這個元素的innerHTML,
就可以用DOM的方式取得原本HTML字串的內容了」
大概是這樣子:
var string = '<img src="123.jpg" id="testimg">測試圖片</img>'; // 原始HTML
var div = document.createElement('div'); // 建一個div
div.innerHTML = string; // 塞字串
接著就可以利用下面的方法去access每個node
elements = div.childNodes;
======================================================
問題是,我如果想要用getElementById來存取原始HTML的元素的時候,一直取不到…
以上面的例子來說,我應該已經在div底下建了一個img元素,img的id=testimg
但是如果我用 obj = document.getElementById("testimg")的話,obj會是null.....
想請問有沒有「可以將HTML String轉成DOM之後,又能用getElementById去存取」的方法
謝謝
作者: GoalBased (Artificail Intelligence)   2014-04-16 19:37:00
\如果你真的有建立 "應該"抓的到吧
作者: mrbigmouth (大嘴先生)   2014-04-16 20:00:00
create之後要插到document底下啊不然就只能用變數存取了
作者: davidsky (Alive)   2014-04-16 22:26:00
.appendChild
作者: YUPTT (Zac)   2014-04-17 07:02:00
不用 jQuery?
作者: vvrr (vvrr)   2014-04-17 09:14:00
謝謝各位的回覆。後來發現要在HTML部份做一個div而不是在javascript這邊create.這樣子就能用getElement拿了
作者: mrbigmouth (大嘴先生)   2014-04-17 17:22:00
你也可以把create出來的插回document....重點在於document.getElementById只能找到document下的你如果在上面執行div.getElementByTagName('img')也能找到div底下你插進去的img啊所以重點是在哪裡找 用什麼找

Links booklink

Contact Us: admin [ a t ] ucptt.com