我有以下的代码非常创建一个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