您的位置:首页 > Web前端 > JQuery

js模仿jquery里的几个方法next, pre, nextAll, preAll

2013-07-22 16:08 1546 查看
/*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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: