DOM没有提供在现有元素后插入一个新元素的方法:insertAfter()
编写insertAfter()函数,用到的DOM方法和属性:
1.parentNode
2.lastChild
3.appendChild()
4.insertBefore( newElement, targetElement )
5.nextSibling:下一个兄弟元素
思路:
insertAfter()接受两个参数:新元素newElement,目标元素targetElement
1.把目标元素的parentNode属性值保存到变量parent里
2.检查目标元素是不是parent的最后一个子元素,即比较parent元素的lastChild属性值与目标元素是否存在“等于”关系;
如果是的:用appendChild方法把新元素追加到parent元素的末尾,即刚好是目标元素的后面
如果不是:就把新元素用insertBefore()插入到目标元素的下一个兄弟元素的前面,即为目标元素后面,兄弟元素之前
代码:function insertAfter(newElement, targetElement) {
var parent = targetElement.parentNode;
if ( parent.lastChild == targetElement ) {
parent.appendChild(newElement);
} else {
parent.insertBefore(newElement, targetElement.nextSibling);
}
}
