作者vvrr (vvrr)
看板Web_Design
標題[問題] HTML String 轉 DOM
時間Wed Apr 16 19:19:25 2014
因為工作上的需要,要把一個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去存取」的方法
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.250.31.103
※ 文章網址: http://www.ptt.cc/bbs/Web_Design/M.1397647167.A.489.html
※ 編輯: vvrr (60.250.31.103), 04/16/2014 19:24:51
推 GoalBased:\如果你真的有建立 "應該"抓的到吧 04/16 19:37
推 mrbigmouth:create之後要插到document底下啊 04/16 20:00
→ mrbigmouth:不然就只能用變數存取了 04/16 20:00
推 davidsky:.appendChild 04/16 22:26
推 YUPTT:不用 jQuery? 04/17 07:02
→ vvrr:謝謝各位的回覆。後來發現要在HTML部份做一個div 04/17 09:14
→ vvrr:而不是在javascript這邊create.這樣子就能用getElement拿了 04/17 09:16
推 mrbigmouth:你也可以把create出來的插回document.... 04/17 17:22
→ mrbigmouth:重點在於document.getElementById只能找到document下的 04/17 17:22
推 mrbigmouth:你如果在上面執行div.getElementByTagName('img') 04/17 17:24
→ mrbigmouth:也能找到div底下你插進去的img啊 04/17 17:25
→ mrbigmouth:所以重點是在哪裡找 用什麼找 04/17 17:25