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