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; }
相关文章推荐
- js模仿jquery里的几个方法parent, parentUntil, children
- jQuery 遍历 - 同层方法siblings() next() nextAll() nextUntil() prev() prevAll() prevUntil()(二十四)
- 使用JS/Jquery获得父窗口的几个方法(笔记)
- jQuery遍历之next()、nextAll()方法使用实例
- 使用JS/Jquery获得父窗口的几个方法(笔记)
- jQuery遍历之next()、nextAll()方法使用实例
- 模仿 JQuery的ajax方法$.get,理解js回调函数应用的方式
- jQuery遍历之next()、nextAll()方法使用实例
- Jquery节点遍历next与nextAll方法使用示例
- Jquery节点遍历next与nextAll方法使用示例
- 原生js实现preAll和nextAll方法
- Js/Jquery获取iframe中的元素 在Iframe中获取父窗体的元素方法
- js获取屏幕高度和宽度的几个方法
- Easyui中使用jquery或js动态添加元素时出现的样式失效的解决方法
- 玩转web之javaScript(五)---js和jquery一些不可不知的方法(input篇)
- jquery/js不支持ie9以下版本的方法或属性
- Jquery 和 Js 获得元素标签名称的方法
- js与jquery实时监听输入框值变化方法
- js/jquery判断浏览器的方法小结
- jquery、js阻止表单提交的不同方法