1

dom内でdivを移動することに少し迷っています。基本的に、いくつかの div の順序を変更する必要があります。それを削除してから、どうにかして再挿入する必要がありますか、それとも dom ツリーに移動するためのより良い方法がありますか。

洞察をありがとう。

4

2 に答える 2

6

移動するだけで、JavaScript を使用して要素にリフローを引き起こすような変更を加える必要がない場合は、単純にappendChild().

一方、要素に変更を加える必要がある場合、そのプロパティまたはドキュメントのリフローをトリガーする「物理的」寸法を更新する必要がある場合は、DOM から要素を削除して変更を加え、appendChild()またはで再挿入する価値がありますinsertBefore()

要素を再配置するだけで、すでに 1 つのドキュメント リフローが発生することに注意してください。ただし、他の変更を行う場合は、再挿入する前に、要素/ノードを documentFragment として「舞台裏」で実行してみてください。

参考文献:

于 2012-06-23T15:06:50.270 に答える
1

削除する必要はありません。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

于 2012-06-23T15:04:33.003 に答える