IE Javascript错误:无法获取未定义或空引用的属性“0”

时间:2017-01-25 14:15:48

标签: javascript internet-explorer

我已将错误缩小到下面的代码。为了示例,我将文本附加到片段中的第一个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及以下版本进行测试。

1 个答案:

答案 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。