javascript 节点遍历函数


Posted in Javascript onMarch 28, 2010

火狐官网上找到的一组函数,相当于treeWalker,有了它可以方便地在IE实现Traversal API 2的所有功能(nextElementSibling,previousElementSibling,firstElementChild,lastElementChild,children)These functions let you find the next sibling, previous sibling, first child, and last child of a given node (element). What makes them unique is that they safely ignore whitespace nodes so you get the real node you're looking for each time.

function is_all_ws(nod) { return !(/[^\t\n\r ]/.test(nod.data)); } 
function is_ignorable(nod) { return (nod.nodeType == 8) || ((nod.nodeType == 3) && is_all_ws(nod)); } 
function node_before(sib) { 
while ((sib = sib.previousSibling)) { 
if (!is_ignorable(sib)) return sib; 
} 
return null; 
} 
function node_after(sib) { 
while ((sib = sib.nextSibling)) { 
if (!is_ignorable(sib)) return sib; 
} 
return null; 
} 
function first_child(par) { 
var res = par.firstChild; 
while(res) { 
if(!is_ignorable(res)) return res; 
res = res.nextSibling; 
} 
return null; 
} 
function last_child(par) { 
var res = par.lastChild; 
while(res) { 
if(!is_ignorable(res)) return res; 
res = res.previousSibling; 
} 
return null; 
}
Javascript 相关文章推荐
表单内同名元素的控制
Nov 22 Javascript
JQuery切换显示的效果实例代码
Feb 27 Javascript
javascript自定义startWith()和endWith()的两种方法
Nov 11 Javascript
javascript对话框使用方法(警告框 javascript确认框 提示框)
Jan 07 Javascript
JavaScript实现数字数组正序排列的方法
Apr 06 Javascript
JS实现的通用表单验证插件完整实例
Aug 20 Javascript
一种新的javascript对象创建方式Object.create()
Dec 28 Javascript
jQuery中设置form表单中action值的实现方法
May 25 Javascript
JS选取DOM元素的简单方法
Jul 08 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐二)
Jul 12 Javascript
Bootstrap基本插件学习笔记之模态对话框(16)
Dec 08 Javascript
vue使用v-for实现hover点击效果
Sep 29 Javascript
javascript 类型判断代码分析
Mar 28 #Javascript
js chrome浏览器判断代码
Mar 28 #Javascript
JavaScript 学习笔记一些小技巧
Mar 28 #Javascript
JavaScript 学习笔记二 字符串拼接
Mar 28 #Javascript
jQuery 美元符冲突的解决方法
Mar 28 #Javascript
分享十五个最佳jQuery 幻灯插件和教程
Mar 27 #Javascript
Jquery 1.42 checkbox 全选和反选代码
Mar 27 #Javascript
You might like
PHP输出当前进程所有变量/常量/模块/函数/类的示例
2013/11/07 PHP
C#使用PHP服务端的Web Service通信实例
2014/04/08 PHP
JS实现程序暂停与继续功能代码解读
2013/10/10 Javascript
javascript的parseFloat()方法精度问题探讨
2013/11/26 Javascript
js 剪切板应用clipboardData详细解析
2013/12/17 Javascript
js 验证身份证信息有效性
2014/03/28 Javascript
ie8下修改input的type属性报错的解决方法
2014/09/16 Javascript
js的for in循环和java里foreach循环的区别分析
2015/01/28 Javascript
使用JavaScript开发IE浏览器本地插件实例
2015/02/18 Javascript
javascript框架设计之类工厂
2015/06/23 Javascript
jQuery实现TAB风格的全国省份城市滑动切换效果代码
2015/08/24 Javascript
关于动态生成dom绑定事件失效的原因及解决方法
2016/08/06 Javascript
AngularJS中过滤器的使用与自定义实例代码
2016/09/17 Javascript
js实现日历的简单算法
2017/01/24 Javascript
vue和webpack安装命令详解
2018/06/15 Javascript
vue插件mescroll.js实现移动端上拉加载和下拉刷新
2019/03/07 Javascript
详解一个小实例理解js原型和继承
2019/04/24 Javascript
微信小程序image图片加载完成监听
2019/08/31 Javascript
[54:15]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第二场2月1日
2021/03/11 DOTA
Python中使用装饰器来优化尾递归的示例
2016/06/18 Python
Python绑定方法与非绑定方法详解
2017/08/18 Python
Python变量赋值的秘密分享
2018/04/03 Python
基于python神经卷积网络的人脸识别
2018/05/24 Python
django ajax发送post请求的两种方法
2020/01/05 Python
Python利用全连接神经网络求解MNIST问题详解
2020/01/14 Python
Python类的绑定方法和非绑定方法实例解析
2020/03/04 Python
python实现批量修改文件名
2020/03/23 Python
Python基于模块Paramiko实现SSHv2协议
2020/04/28 Python
HTML5语音识别标签写法附图
2013/11/18 HTML / CSS
The North Face北面英国官网:美国著名户外品牌
2017/12/13 全球购物
情人节寄语大全
2014/04/11 职场文书
机械加工与数控专业自荐书
2014/06/04 职场文书
学习党的群众路线实践活动思想汇报
2014/09/12 职场文书
2014应届本科生自我评价
2014/09/13 职场文书
迎国庆横幅标语
2014/10/08 职场文书
php 原生分页
2021/04/01 PHP