Element:moveBefore() 方法

可用性有限

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

Element 接口的 moveBefore() 方法将给定的 Node 移动到调用节点内部,作为其直接子节点,并置于给定参考节点之前。

语法

js
moveBefore(movedNode, referenceNode)

参数

movedNode

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

referenceNode

一个 NodemovedNode 将被移动到此节点之前;或者为 null。如果值为 nullmovedNode 将插入到调用节点的子节点的末尾。

返回值

无(undefined)。

异常

HierarchyRequestError TypeError

在以下任何情况下抛出:

  • 指定的 movedNode 不属于 DOM,但你试图将其移动到属于 DOM 的节点内部,反之亦然。
  • 指定的 movedNode 是正在调用 moveBefore() 的 Element 的祖先。
  • 你试图在两个不同的文档之间移动 movedNode
  • 指定的 movedNode 不是 ElementCharacterData 节点。
NotFoundError TypeError

指定的 referenceNode 不是你正在调用 moveBefore() 的节点的子节点,即你试图将 movedNode 移动到的节点。

TypeError TypeError

未提供第二个参数。

描述

moveBefore() 方法将给定节点移动到 DOM 中的新位置。它提供了与 Node.insertBefore() 方法类似的功能,不同之处在于它不会先移除再重新插入节点。这意味着节点的状态(如果使用 insertBefore() 和类似机制移动节点,其状态会重置)在移动后会保留。这包括:

尝试点击