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

JavaScript DOM修改文档树方法实例(1)(3)

时间:2013-03-06 14:58来源:未知 作者:admin 点击:
分享到:
辅助函数 appendChild()和insertBefore()都有2个参数,但是我们在应用的时候,还要注意参数的先后顺序。既然这么麻烦我们还是自己写一些辅助函数来代替原有

辅助函数

appendChild()和insertBefore()都有2个参数,但是我们在应用的时候,还要注意参数的先后顺序。既然这么麻烦我们还是自己写一些辅助函数来代替原有的appendChild()和insertBefore()。在另一个元素之前插入元素的函数:

  1. <script type="text/javascript"> 
  2. //insertBefore()的代替方法  
  3. function before( parent, before, elem ) {  
  4.     // Check to see if no parent node was provided  
  5.  //检查parent是否传入  
  6.     if ( elem == null ) {  
  7.         elem = before;  
  8.         before = parent;  
  9.         parent  = before.parentNode;  
  10.     }  
  11.    
  12.     // Get the new array of elements  
  13.  //获取元素的新数组  
  14.     var elems = checkElem( elem );  
  15.    
  16.     // Move through the array backwards,  
  17.     // because we’re prepending elements  
  18.  //向后遍历数组  
  19.  //因为我们向前插入元素  
  20.     for ( var i = elems.length - 1; i >= 0; i-- ) {  
  21.         parent.insertBefore( elems[i], before );  
  22.     }  
  23. }  
  24. </script>  

为另一个元素添加一个子元素:

  1. <script type="text/javascript"> 
  2. //appendChild()的代替方法  
  3. function append( parent, elem ) {  
  4.     // Get the array of elements  
  5.  //获取元素数组  
  6.     var elems = checkElem( elem );  
  7.    
  8.     // Append them all to the element  
  9.  //把它们所有都追加到元素中  
  10.     for ( var i = 0; i <= elems.length; i++ ) {  
  11.         parent.appendChild( elems[i] );  
  12.     }  
  13. }  
  14. </script>  

before和append的辅助函数:

  1. <script type="text/javascript"> 
  2. function checkElem( elem ) {  
  3.     // If only a string was provided, convert it into a Text Node  
  4.  //如果只提供字符串,那就把它转换为文本节点  
  5.     return elem && elem.constructor == String ?  
  6.    document.createTextNode( elem ) : elem;  
  7. }  
  8. </script>  

注意:constructor的用法。

有时你可能需要对变量进行类型检查,或者判断变量是否已定义。有两种方法可以使用:typeof函数与constructor属性。typeof可以检查到变量是否有定义,而construct只能检查已定义变量的类型。

移除所有的子节点的辅助函数:

  1.  <script type="text/javascript"> 
  2. function empty( elem ) {   
  3.  while (elem.firstChild){  
  4.    remove(elem.firstChild);  
  5.  }  
  6.  /*  
  7.  //我们可以使用firstChild来代替childNodes[0]  
  8.  while (elem.childNodes[0])  
  9.   remove(elem.childNodes[0]);  
  10.  * /  
  11. }  
  12.    
  13. function remove( elem ) {  
  14.     if ( elem ) elem.parentNode.removeChild( elem );  
  15. }  
  16. </script> 

精彩图集

赞助商链接