2013-04-17 36 views
8

這應該很簡單,但事實並非如此。添加到沒有jQuery的DOM

document.getElementsByTagName('body')[0].document.createTextNode(document.createElement('<div>some HTML</div>')); 

它創建爲文本節點。我怎麼做,所以我只需添加沒有jQuery的HTML?

+1

可能重複[插入HTML元素與JavaScript](http://stackoverflow.com/questions/814564/inserting-html-elements-with-javascript) –

回答

15

關閉,但沒有雪茄。您必須手動(通過createElement)創建元素,並然後追加,就像這樣:

var div = document.createElement("div"); 
div.innerHTML = "some HTML"; 
document.getElementsByTagName('body')[0].appendChild(div); 

不幸的是,你不能在一個班輪做到這一點,因爲沒有函數來設置innerHTML元素的屬性,這意味着它不可鏈接。只要一點準備,你可以做到這一點,雖然:

function setInnerHTML(element, content) { 
    element.innerHTML = content; 
    return element; 
} 

document.getElementsByTagName('body')[0].appendChild(setInnerHTML(document.createElement("div"), "some HTML")); 
+0

太好了。謝謝。任何想法如何在以後精確刪除創建的元素(單獨的部分腳本)? – user2143356

+0

當然。既然我們已經存儲了對元素'div'的引用,我們可以這樣做:'div.parentNode.removeChild(div);' –

+0

完美。謝謝 – user2143356

1

有正有很多方法:

elem.innerHTML = '' // fast 
elem.appendChild()  
elem.insertAdjacentElement() //fast  
elem.insertAdjacentHTML() 
elem.insertAdjacentText() 
0
document.body.innerHTML+=document.createElement('div').outerHTML;