/*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;
}