dom兼容性问题3 元素操作

/* 
var oLi = document.createElement('li');
    
   oUl.appendChild( oLi );
  
};



createElement('') : 创建一个dom元素

appendChild() : 往一个节点的现有子节点后面追加一个新的子节点。

  父级.appendChild( 子节点 );


insertBefore()


createElement('') : 创建一个dom元素

appendChild() : 往一个节点的现有子节点后面追加一个新的子节点。

  父级.appendChild( 子节点 );

insertBefore() : 往一个节点的指定现有子节点前面插入一个新的子节点。

  父级.insertBefore( 准备插入的子节点,插入到哪个子节点的前面 );

removeChild() : 从一个节点里面删除指定的子节点。
  
  父级.removeChild( 准备要删除的子节点 );
  
replaceChild() : 用一个节点替换掉另一个节点里面的指定子节点。

  被替换元素的父级.replaceChild( 用来替换的节点,被替换掉的子节点 );

  被替换的元素必须是真实存在的节点元素。
  
cloneNode() :  复制一个节点。
    
    被复制的节点.cloneNode( boolean );
      boolean : 指定是否复制所有子孙节点。
        true : 复制所有子孙节点。
        false : 只复制节点本身。
      
    温馨提醒:cloneNode() 只会复制dom结构,而不会复制事件或者通过js添加的属性等。
  appendChild() / insertBefore() / replaceChild() : 如果操作的对象是一个已经存在在页面中的元素,则是直接移动元素,而并非复制元素。

exp:
var oDiv1 = document.getElementById('div1');
var oDiv2 = document.getElementById('div2');
var oBox = document.getElementById('box');

document.onclick = function(){
  
    //oBox.appendChild( oDiv1 );
   // oBox.appendChild( oDiv1.cloneNode() );
    //oBox.insertBefore( oDiv1 , oDiv2 );
    oBox.replaceChild( oDiv1 , oDiv2 );
  
};



appendChild() / insertBefore() / replaceChild() : 如果操作的对象是一个已经存在在页面中的元素,则是直接移动元素,而并非复制元素。
      
-----------------------------------------------------
class封装函数
function hasClass( obj , sClass ){
  
  var aClass = obj.className.split(' ');
  
  if( !obj.className )return false;
  
  for(var i=0; i<aClass.length; i++){
    if( aClass[i] == sClass )return true;
  }
  
  return false;
  
}


function removeClass( obj , sClass ){
    var aClass = obj.className.split(' ');
    
    if( !obj.className ) return;
    
    for(var i=0; i<aClass.length; i++){
    
      if( aClass[i] == sClass ){
        
        aClass.splice( i , 1 );
        obj.className = aClass.join(' ');
        return;
        
      }  
      
    }
  
}

function addClass( obj , sClass ){
  
    var aClass = obj.className.split(' ');
    
    if( !obj.className ){
      obj.className = sClass;
      return;  
    }
    
    for(var i=0; i<aClass.length; i++){
      if( aClass[i] == sClass ) return;
    }
    
    obj.className += ' ' + sClass;  
  
}
//获取

function getByClass( sClass , parent ){ 
  var aEles = (parent||document).getElementsByTagName('*');
  var arr = [];

  for(var i=0; i<aEles.length; i++){ //查看每一个元素是否满足要求
    var aClass = aEles[i].className.split(' ');
    
    for(var j=0; j<aClass.length; j++){ //查看元素的每一个className
      if( aClass[j] == sClass ){
        arr.push( aEles[i] );  
        break;
      }
    }
    
  }
  
  return arr;
  
}



*/

转载于:https://www.cnblogs.com/aix1314/p/4549023.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值