封装函数,返回元素e的第n个兄弟元素节点,n为正,返回后面的兄弟元素节点,n为负,返回前面的,n为0,返回自己

function retSibling(e,n){
        while(e && n){
            if(n>0){
                    if(0 && e.nextElementSibling){
                        e=e.nextElementSibling;
                    }else{
                        for(e=e.nextSibling;e && e.nodeType!=1;e=e.nextSibling);
                    }
                    n--;
            }else{

                if(e.previousElementSibling){
                    e=e.previousElementSibling;
                }else{
                    for(e=e.previousSibling;e && e.nodeType!=1;e=e.previousSibling);
                }
                n++;
            }
          
        }
        return e;
}

  <div>
         <span></span>
        <p></p>
      <strong></strong>
      <i></i>
      <address></address>
  </div>


  var div=document.getElementsByTagName('div')[0];
  var strong=document.getElementsByTagName('strong')[0];
  retSibling(strong,2)


  

原文地址:https://www.cnblogs.com/h5it/p/13441063.html