2017-06-14 4 views
0

内の既存の要素を動的に生成しましたdiv要素(id="block")。私は関数(returnDiv())からの出力を受け取っているだけで、メソッド内の何かを変更するコントロールはありません。次のように出力されますは、私はJavaScriptを使用して生成されたdiv要素を持っているのhtml

// returnDiv() returns me the following output which I am collecting in innerDiv variable 

var innerDiv = <div style="width: 30px;"><div class="pBar" style="width: 100%;"><span title="100.00%" class="l r" style="background: red; left: 1px; width: 30px; box-shadow: 0px 2px 1px rgba(0,0,0,0.2), inset 0px 2px 1px rgba(0,0,0,0.2);" rel="tooltip"></span><span title="0.00%" class=" r" style="background: rgb(255, 194, 0); left: 31px; width: 0px; box-shadow: 0px 2px 1px rgba(0,0,0,0.2), inset 0px 2px 1px rgba(0,0,0,0.2);" rel="tooltip"></span></div></div>; 

//document.createElement('div'); 

//innerDiv.className = 'block-2'; 

// The variable iDiv is still good... Just append to it. 

iDiv.appendChild(innerDiv); 
innerDiv.innerHTML = "I'm the inner div"; 

ここでフィドルのリンクです: https://jsfiddle.net/1988/5ff8dqbb/

問題はインナー事業部であるが表示されていない、とエラーが「キャッチされない例外TypeErrorを言う:実行に失敗しました 『のappendChild』 'にノード ':パラメータ1はタイプではない 『ノード』 」それはランタイムですので、私はいただきました!問題

答えて

1

よりよい解決策作ることはできませんよ:。

var parser = new DOMParser() 
var el = parser.parseFromString(innerDiv, "text/xml"); 
iDiv.appendChild(el.firstElementChild) 

旧ソリューション:

あなたは、このようにIDIVにinerDivを追加することはできません。 あなたができることのようにこれに: 変更

`iDiv.appendChild(innerDiv);` 

`iDiv.innerHTML += innerDiv` 
関連する問題