js模仿jquery里的幾個方法next, pre, nextAll, preAll


/*siblings函數, 選取node的所有兄弟節點*/

function
siblings(node){ if(node.nodeType === 1){ node.flag = true; //給當前節點打上一個標志 var children = node.parentNode.childNodes, length = children.length, tempArray = [], i = 0; for(; i < length; i++){ if(!children[i].flag && children[i].nodeType === 1 && children[i].nodeName !== 'SCRIPT'){ //過濾一下script節點 tempArray.push(children[i]); } } return tempArray.length ? tempArray : null; } else{ return null; } }
/*選取緊鄰node節點的下一個兄弟節點*/

function
next(node){ var next = node.nextSibling; if(next !== null && next.nodeType === 3){ //防止內聯元素在ie下出現的空白節點和火狐下的空白節點 return next.nextSibling; } return next; }
/*選取緊鄰node節點的上一個兄弟節點*/
function pre(node){
    var pre = node.previousSibling;
    if(pre !== null && pre.nodeType === 3){ //防止內聯元素在ie下出現的空白節點和火狐下的空白節點
        return pre.previousSibling;
    }
    return pre;
}
/*選取node節點后的所有兄弟節點*/

function
nextAll(node){ var nextNode = next(node), nodeArray = []; while(nextNode != null){ nodeArray.push(nextNode); nextNode = next(nextNode); } return nodeArray; }


/*選取node節點前的所有兄弟節點*/
function preAll(node){ var preNode = pre(node), nodeArray = []; while(preNode != null){ nodeArray.push(preNode); preNode = pre(preNode); } return nodeArray; }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM