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

瀏覽器相容性

另見