我们知道 DOM 提供了 insertBefore 函数, 用于在已有的元素前插入一个新元素, 而 DOM 本身并没有提供一个 insertAfter 函数用于在已有元素后插入一个新元素, 可通过现有的 DOM 方法和属性自己手动封装一个 insertAfter 函数. 如下:
function insertAfter (newElement
, targetElement
){
var parent
= targetElement
.parentNode
;
if(parent
.lastChild
== targetElement
){
parent
.appendChild(newElement
);
}else{
parent
.insertBefore(newElement
, targetElement
.nextSibling
);
}
}
(newElement: 将被插入的新的元素, targetElement: 目标元素)
这个函数用到了以下 DOM 方法和属性 : 1, parentNode 属性: 返回某节点的父节点; 2, lastChild 属性: 返回选定元素的最后一个子节点; 3, appendChild 方法 : 向节点的子节点列表的末尾添加新的子节点; 4, insertBefore 方法 : 在已有的子节点前插入一个新的子节点; 5, nextSibling 属性 : 返回选定元素的下一个同级节点(在相同树层级中的下一个节点);