我已将错误缩小到下面的代码。为了示例,我将文本附加到片段中的第一个div中。这似乎适用于所有浏览器,但IE似乎不喜欢它。
看起来问题特别是[0] index
?虽然我错了。
<div id="hello"></div>
var frag = document.createDocumentFragment(),
div = document.createElement('div');
frag.appendChild(div);
frag.children[0].innerHTML = "Hello";
document.getElementById('hello').append(div);
小提琴: https://jsfiddle.net/d758ma27/
预期的输出#hello
现在包含文本“Hello” - 它的作用,只是不在IE中。任何帮助都会很棒,这让我很困惑!
目前正在IE10及以下版本进行测试。
答案 0 :(得分:4)
这是我修复它的方法。
var frag = document.createDocumentFragment(),
div = document.createElement('div');
frag.appendChild(div);
frag.childNodes[0].innerHTML = "Hello";
document.getElementById('hello').appendChild(div);
<div id="hello"></div>
请注意,我使用childNodes
而不是children
来访问文档片段中的元素,而使用appendChild
而不是append
来添加新的div元素文档中的DOM。