DocumentFragment: moveBefore() 方法

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

moveBefore() 方法是 DocumentFragment 接口的一个方法,它将一个给定的 Node 作为直接子节点,移动到调用该方法的 DocumentFragment 中,位于一个给定的参考节点之前。

语法

js
moveBefore(movedNode, referenceNode)

参数

movedNode

一个 Node,表示要移动的节点。请注意,这必须是一个 ElementCharacterData 节点。

referenceNode

movedNode 将被移动到的节点,或者 null。如果值为 null,则 movedNode 将被插入到调用该方法的 DocumentFragment 的子节点列表的末尾。

返回值

无(undefined)。

异常

HierarchyRequestError TypeError

在以下任何情况下抛出:

  • 指定的 movedNode 已经被添加到 DOM 中,而您正试图将其移动到一个 DocumentFragment 中。
  • 您正试图在两个不同的 document fragments 之间移动 movedNode
  • 指定的 movedNode 不是 ElementCharacterData 节点。
NotFoundError TypeError

指定的 referenceNode 不是您调用 moveBefore() 方法的 DocumentFragment 的子节点,也就是说,您试图将 movedNode 移动到其中的 fragment。

TypeError TypeError

未提供第二个参数。

描述

moveBefore() 方法将一个给定的节点移动到 DocumentFragment 中的新位置。它提供了与 Node.insertBefore() 方法类似的功能,但它不会删除然后重新插入节点。这意味着在移动后,节点的(如果使用 insertBefore() 和类似机制移动,状态会重置)状态会被保留。这包括:

尝试点击前两个按钮几次,注意第二个按钮如何修改 DocumentFragment 的结构。

规范

规范
DOM
# dom-parentnode-movebefore

浏览器兼容性

另见