插入新结点到指定结点的指定位置

<ul>
  <li id="bj" name="beijing">北京</li>
<li id="sh" name="shanghai">上海</li>
<li id="cq" name="chongqing">重庆</li>
</ul>
要求:插入新的节点 <li id="tj" name="tianjin">天津</li> 到<li id="sh" name="shanghai">上海</li>这个节点
(1)如上海节点是最后一个节点插入到该节点的<li id="sh" name="shanghai">上海</li>的后面,
(2)否则插入到该节点的前面

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>插入新结点到指定结点的指定位置</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
       <ul>
  <li id="bj" name="beijing">北京</li>
<li id="cq" name="chongqing">重庆</li>    
<li id="sh" name="shanghai">上海</li>
  </ul>
  </body>
  <script language="JavaScript">
//创建"天津节点"
     var tjElement=document.createElement("li");
tjElement.setAttribute("id","tj");
tjElement.setAttribute("name","tianjin");
var textElement=document.createTextNode("天津");
tjElement.appendChild(textElement);
//获取"上海"节点
var shElement=document.getElementById("sh");
//获取上海节点的父节点
var shParentElement=shElement.parentNode;
//获取上海父节点的最后一个子节点
var lastElement=shParentElement.lastChild;
//如果上海节点==父节点的最后一个子节点,上海就是最后一个子节点,天津节点插入到上海节点的后面
if(shElement==lastElement){
shParentElement.appendChild(tjElement);
}else{
//否则,天津节点插入上海节点的前面
shParentElement.insertBefore(tjElement,shElement);
}
  </script>
</html>
//用IE打开,其他浏览器的运行结果有可能是错的

你可能感兴趣的:(插入新结点到指定结点的指定位置)