dom内でdivを移動することに少し迷っています。基本的に、いくつかの div の順序を変更する必要があります。それを削除してから、どうにかして再挿入する必要がありますか、それとも dom ツリーに移動するためのより良い方法がありますか。
洞察をありがとう。
dom内でdivを移動することに少し迷っています。基本的に、いくつかの div の順序を変更する必要があります。それを削除してから、どうにかして再挿入する必要がありますか、それとも dom ツリーに移動するためのより良い方法がありますか。
洞察をありがとう。
移動するだけで、JavaScript を使用して要素にリフローを引き起こすような変更を加える必要がない場合は、単純にappendChild()
.
一方、要素に変更を加える必要がある場合、そのプロパティまたはドキュメントのリフローをトリガーする「物理的」寸法を更新する必要がある場合は、DOM から要素を削除して変更を加え、appendChild()
またはで再挿入する価値がありますinsertBefore()
。
要素を再配置するだけで、すでに 1 つのドキュメント リフローが発生することに注意してください。ただし、他の変更を行う場合は、再挿入する前に、要素/ノードを documentFragment として「舞台裏」で実行してみてください。
参考文献:
削除する必要はありません。appendChild
またはinsertBefore
、または などの jQuery メソッドを使用して、ノードを再配置できますinsertAfter
。
例えば:
var newOrder = ['id2', 'id1', 'id4', 'id3'];
var container = document.getElementById('container');
for(var i = 0, l=newOrder.length; i<l; i++) {
container.appendChild(document.getElementById(newOrder[i]));
}
これにより、IDid*
を持つノードがコンテナの最後に移動しますが、newOrder