在js里insertBefore() 方法在您指定的已有子节点之前插入新的子节点。下面是代码
html添加前
<div id="box">
<span id="box1"></span>
</div>
var box = document.getElementById("box"); //父节点
var box1 = document.getElementById("box1"); //已存在的子节点
var box2 = document.createElement("i"); //创建一个新的节点
box.insertBefore(box2,box1); //父节点.inserBrfore(新节点,旧节点); 在这个父节点下面的旧节点(已存在的节点)前插入一个新创建的节点
html添加后
<div id="box">
<i></i>
<span id="box1"></span>
</div>
现在js有一个插入节点前面的,不过js没有提供插入节点后面的,那我们现在自定义一个insertAfter的函数用于添加到已知节点后面
html添加前
<div id="box">
<span id="box1"></span>
</div>
var box = document.getElementById("box"); //父节点
var box1 = document.getElementById("box1"); //已存在的子节点
var box2 = document.createElement("i"); //创建一个新的节点
fucntion insertAfter(new,old){
var parent = old.parentNode; //获取旧节点的父元素
if(parent.lastChild == old){ //如果父元素的最后一个子节点是old
parent.appendChild(new); //直接添加到parent的最后面
}else{
parend.insertBefore(new,old.nextSibling); //否则把新节点插入到旧节点的下一个兄弟节点处
}
}
insertAfter(box2,box1); //insertAfter(新节点,旧节点);
html添加后
<div id="box">
<span id="box1"></span>
<i></i>
</div>
版权声明:本文为weixin_42143687原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。