[Node.insertBefore](https://developer.mozilla.org/zh-CN/docs/Web/API/Node/insertBefore)
方法在指定的参考节点前插入一个有指定父级节点的子节点,返回插入元素本身。一般用法为parent.insertBefore(newNode, anchorNode)
如果参考节点anchorNode
为null
,则insertBefore
方法等价于Node.appendChide
即插入节点会直接插入到父节点的最后一个。这里需要注意
referenceNode
引用节点不是可选参数——你必须显式传入一个Node
或者null
例子:
- 没有
insertAfter()
。不过,可以使用insertBefore
和Node.nextSibling
来模拟它。
在前一个例子中,可使用下面代码将 sp1
插入到 sp2
之后:
parentDiv.insertBefore(sp1, sp2.nextSibling);
- 在第一个子元素的前面插入一个元素,可使用 firstChild 属性。
//插入节点之前,要获得节点的引用
var parentElement = document.getElementById('parentElement');
//获得第一个子节点的引用
var theFirstChild = parentElement.firstChild;
//创建新元素
var newElement = document.createElement("div");
//在第一个子节点之前插入新元素
parentElement.insertBefore(newElement, theFirstChild);