2017-01-25 56 views
2

私は以下のコードに私のエラーを絞り込みました。この例では、フラグメント内の最初のdivにテキストを追加しています。これはすべてのブラウザで動作するようですが、IEはそれを好きではありません。IE Javascriptエラー:未定義またはnull参照のプロパティ '0'を取得できません

問題は具体的には[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は今テキスト "こんにちは" 含まれているだろう - それだけではないIEで、ありません。どんな助けも素晴らしく、これは本当に私を混乱させました!

現在IE10以下でテスト中です。

+2

IEが子どもをサポートしていない可能性があります。ドキュメントフラグメントのhttps://developer.mozilla.org/en-US/docs/Web/API/ParentNode/children#Browser_compatibility – epascarello

+0

エラーは、 'frag.children'が'定義されていない。 – Pointy

+0

@これを解決するために私が何をする必要があるかについてのアイデアはありますか?ありがとう – Nick

答えて

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>

私はドキュメント内のDOMに新しいdiv要素を追加する文書フラグメント内の要素にアクセスするためにchildNodesではなくchildrenを使用して、むしろappendよりappendChildよ注意してください。

関連する問題