龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > Javascript编程 >

深入解读JavaScript中BOM和DOM(1)(2)

时间:2013-03-06 14:58来源:未知 作者:admin 点击:
分享到:
3、插入节点 appendChild() : var container = document .createElement(p); var t = document .createTextNode(cssrain); container.appendChild(t); document.body.appendChild(container); 它经常跟crea

3、插入节点

appendChild() :

  1. var container = document.createElement("p");   
  2. var t =  document.createTextNode("cssrain");   
  3. container.appendChild(t);   
  4. document.body.appendChild(container);  

它经常跟createElement()和createTextNode(),cloneNode()配合使用。另外appendChild()不仅可以用来追加新的元素,也可以你挪动文档中现有的元素。看下面的例子:

  1. <p id="msg">msg</p>   
  2. <p id="content">content</p>   
  3. <p id="aaa">aaaaaaaa</p>   
  4. <script>   
  5. var mes = document.getElementById("msg");   
  6. var container = document.getElementById("content");   
  7. container.appendChild(mes);   
  8. </script>   
  9. //发现msg放到 content 后面去了。  
  10. <p id="content">   
  11. content   
  12. <p id="msg">msg</p>   
  13. </p>   
  14. <p id="aaa">aaaaaaaa</p>  

第二个参数是可选,如果第二个参数不写,将默认添加到文档的最后,相当于appendChild();我们看看insertBefore()怎么使用:

  1. <div id="cssrian">   
  2. <p id="content">1111</p>   
  3. <div id="msg">msg<div>test</div></div>   
  4. <p id="content">222</p>   
  5. <p id="aaa">aaaaaaaa</p>   
  6. </div>   
  7. <script>   
  8. var msg = document.getElementById("msg");   
  9. var aaa = document.getElementById("aaa");   
  10. var test = document.getElementById("cssrian");   
  11. test.insertBefore( msg , aaa );   
  12. </script>   
  13. // 我们发现ID为msg的 插入到了aaa的前面。 

Js内部处理方式跟 appendChild()相似。

4、删除节点

removeChild():

  1. <body>   
  2. <div id="cssrain">   
  3. <div id="a"></div>   
  4. <div id="b"></div>   
  5. <div id="c"></div>   
  6. </div>   
  7. </body>   
  8. <script>   
  9. var msg = document.getElementById("cssrain");   
  10. var b = document.getElementById("b");   
  11. msg.removeChild(b);   
  12. </script>  

如果不知道要删除的节点的父节点是什么?可以使用parentNode属性。比如:

  1. <body>   
  2. <div id="cssrain">   
  3. <div id="a"></div>   
  4. <div id="b"></div>   
  5. <div id="c"></div>   
  6. </div>   
  7. </body>   
  8. <script>   
  9. var b = document.getElementById("b");   
  10. var c = b.parentNode;   
  11. c.removeChild(b);   
  12. </script>  

注意:你如果想把某个节点从一处移动到另一个地方,不必使用removeChild()。可以使用前面的 appendChild()和insertBefore(),他们都会自动先删除节点,然后移动到你指定的地方。、

5、替换节点

  1. Element.repalceChild( newNode , oldNode ):  
  2.  
  3. <body>   
  4. <div id="cssrain">   
  5. <div id="a"></div>   
  6. <div id="b"></div>   
  7. <div id="c"></div>   
  8. </div>   
  9. </body>   
  10. <script>   
  11. var cssrain = document.getElementById("cssrain");   
  12. var msg =  document.getElementById("b");   
  13. var para =  document.createElement("p");   
  14. cssrain.replaceChild( para , msg  );   
  15. </script>  

精彩图集

赞助商链接