オンラインで読んで、頻繁なリフローを防ぎ、ドキュメントフラグメントを使用できるたびにDOMを変更するので、そのアプローチを採用し、2つのドロップダウンに同じコンテンツ(実際には1990年から2013年までの年数が含まれています)を入力したいと思いました。
var fragment = document.createDocumentFragment();
for(var i=1;i<=10;i++){
var choice = document.createElement('option');
choice.value = i;
choice.innerHTML = i;
fragment.appendChild(choice);
}
$('#list').html(fragment); //Populates #list with values 1-10
これは正常に機能しますが、2番目のドロップダウンに同じ値を入力すると、フラグメントにコンテンツが含まれなくなります
$('#list2').html(fragment); // Does not populate #list2
デモJSFiddle:ここ
私もうまくいく別のアプローチを試しました、私が知りたいのは、innerHTML()の後にドキュメントフラグメントがコンテンツを失う方法と理由です?