在dom中移动div的最快方法是什么?

时间:2012-06-23 14:59:49

标签: javascript jquery html dom

我在dom中移动div时有点迷失。我基本上需要改变一些div的顺序。我应该删除它,然后以某种方式重新插入它,或者有更好的方法在dom树中移动它。

感谢您的任何见解。

2 个答案:

答案 0 :(得分:6)

如果您只需要移动它,并且不需要使用JavaScript对元素进行任何回流触发更改,只需使用appendChild()

另一方面,如果您需要对元素进行更改,更新其属性或触发文档重排的“物理”维度,则值得将其从进行更改的DOM中删除,然后重新插入{ {1}}或appendChild()

请记住,已经有一个文档重排,只需重新定位元素,但是如果要进行任何其他更改,那么在重新插入之前尝试使用元素/节点作为documentFragment在幕后执行它们

参考文献:

答案 1 :(得分:1)

您无需删除它,您可以使用appendChildinsertBefore或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]));
}

这会将带有id*的节点移动到容器的末尾,但按照newOrder中定义的顺序