我有以下的代碼非常創建一個div元素,無論是內部的,並將它置於createElement()如何與innerHTML一起使用?
function create(htmlStr) {
var frag = document.createDocumentFragment(), temp = document.createElement('div');
temp.innerHTML = htmlStr;
while (temp.firstChild) {
frag.appendChild(temp.firstChild);
}
return frag;
}
var fragment = create('<div id="test">HELLO</div>');
document.body.insertBefore(fragment, document.body.childNodes[0]);
我,但是,困惑,爲什麼我們創建另一個
div
temp = document.createElement('div');
如果我們已經通過<div id="test">HELLO</div>
到create()
的功能。似乎我會創建一個div內的div(但它不會)。或者只是用temp.firtChild
解壓?自從
temp
開始做temp.innerHTML = htmlStr;
是div
?
你的'while'看起來像永無止境。 – techfoobar
Nothing持續永久 –
@techfoobar - 當調用appendChild()時,作爲temp的子元素被從temp移除併成爲frag的一個子元素。 – gilly3