定义:
insertBefore() 方法在您指定的已有子节点之前插入新的子节点。
语法:
父级.insertBefore(新的子节点,指定的已有子节点)
实例:
<input id="txt1" type="text"/> <input id="btn1" type="button" value="创建li"/> <ul id="ul1"> </ul>
window.onload=function () { var oBtn=document.getElementById('btn1'); var oUl=document.getElementById('ul1'); var oTxt=document.getElementById('txt1'); oBtn.onclick=function () { var oLi=document.createElement('li'); var aLi=oUl.getElementsByTagName('li'); oLi.innerHTML=oTxt.value; //父级.appendChild(子节点); if(aLi.length>0) { oUl.insertBefore(oLi, aLi[0]); } else { oUl.appendChild(oLi); } }; };
当ul中没有li时oUl.insertBefore(oLi, aLi[0]);会报错,所以判断aLi.length为0时使用oUl.appendChild(oLi);
我们这里没有涉及到的,但程序中要注意的是appendChild()是先把元素从原有父级中删除,在添加到新的父级。