文档:moveBefore() 方法

可用性有限

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

Document 接口的 moveBefore() 方法将给定的 Node 作为直接子节点,移动到 Document DOM 节点内部,位于给定的参考节点之前。

语法

js
moveBefore(movedNode, referenceNode)

参数

movedNode

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

referenceNode

一个 NodemovedNode 将被移动到其之前,或为 null。如果值为 null,则 movedNode 将被插入到 Document 的子节点末尾。

返回值

无(undefined)。

异常

HierarchyRequestError TypeError

在以下任何情况下抛出:

  • 指定的 movedNode 不属于此文档。
  • 指定的 movedNode 不是 ElementCharacterData 节点。
  • 你正尝试将 movedNode 移动到文档的 doctype(由 DocumentType 对象表示)之前。
NotFoundError TypeError

指定的 referenceNode 不是你调用 moveBefore() 的节点的子节点,也就是说,不是你尝试将 movedNode 移动到的节点内部的子节点。

TypeError TypeError

未提供第二个参数。

描述

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

如果你使用浏览器的开发者工具检查该示例,你会注意到注释已移动到文档末尾,在结束的 </html> 标签之后。

规范

规范
DOM
# dom-parentnode-movebefore

浏览器兼容性

另见