3

テンプレートタグにコンテンツを追加しようとしています。私は使っている

getcontent("clients.json").then(function(x){
   obj = JSON.parse(x);
}).then(function(x){

   var x = createFullList(obj,docFragment);
   filtered = obj;
   return x;
}).then(function(x){
   template   .appendChild(x);
   var clone = document.importNode(template.content, true);
   alert(clone.children.length);
   aside.appendChild(clone)
});

getcontent は response を返す ajax 呼び出しです。応答は解析され、オブジェクトとして obj 変数に格納されます。

createFullList は、ajax 応答のすべての要素に対して div を作成し、それを fragment に追加します。次に、フラグメントは、同じく返される div に追加されます。

function createFullList( obj , fragment ){
   var aside       = document.getElementsByClassName("one")[0];
   for( x in obj ){
      createInfoElement( fragment , obj[x].general , obj[x].job , x);
   }
   var div = document.createElement("div");
   div.appendChild(fragment);
   deleteKid( aside , 1 );
   return div;
}

問題はテンプレートに追加することですが、何もしません。その内容をコピーしようとすると、子が 0 と表示されますが、div の子を印刷すると正しい番号が印刷されます。

コンテンツがテンプレートに追加されないのはなぜですか? これは正しい方法ですか、それともテンプレートにコンテンツを正しく追加する特定の方法はありますか?

4

2 に答える 2

1

template.contentの代わりにフラグメントを追加する必要がありますtemplate

template.content.appendChild( x )
于 2016-07-14T21:30:53.343 に答える