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 相关文章推荐
JS面向对象、prototype、call()、apply()
May 14 Javascript
从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
Feb 23 Javascript
一款Jquery 分页插件的改造方法(服务器端分页)
Jul 11 Javascript
基于JavaScript 数据类型之Boolean类型分析介绍
Apr 19 Javascript
from 表单提交返回值用post或者是get方法实现
Aug 21 Javascript
node.js中的buffer.length方法使用说明
Dec 14 Javascript
jQuery插件开发汇总
May 15 Javascript
动态加载js、css的实例代码
May 26 Javascript
微信小程序开发之从相册获取图片 使用相机拍照 本地图片上传
Apr 18 Javascript
12条写出高质量JS代码的方法
Jan 07 Javascript
使用vue2实现购物车和地址选配功能
Mar 29 Javascript
jquery获取元素到屏幕四周可视距离的方法
Sep 05 jQuery
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取整函数ceil,floo,round的用法及介绍
2013/08/31 PHP
PHPMailer发送HTML内容、带附件的邮件实例
2014/07/01 PHP
PHP页面输出时js设置input框的选中值
2016/09/30 PHP
php实现跨域提交form表单的方法【2种方法】
2016/10/17 PHP
PHP中call_user_func_array回调函数的用法示例
2016/11/26 PHP
ExtJs之带图片的下拉列表框插件
2010/03/04 Javascript
鼠标移到图片上变大显示而不是放大镜效果
2014/06/15 Javascript
jquery模拟实现鼠标指针停止运动事件
2016/01/12 Javascript
深入学习Bootstrap表单
2016/12/13 Javascript
nodejs和php实现图片访问实时处理
2017/01/05 NodeJs
基于NodeJS+MongoDB+AngularJS+Bootstrap开发书店案例分析
2017/01/12 NodeJs
微信小程序本作用域下调用全局JS详解及实例
2017/02/22 Javascript
微信小程序 图片宽高自适应详解
2017/05/11 Javascript
浅谈angular2 组件的生命周期钩子
2017/08/12 Javascript
vue项目中使用百度地图的方法
2018/06/08 Javascript
解决vue接口数据赋值给data没有反应的问题
2018/08/27 Javascript
Vuejs2 + Webpack框架里,模拟下载的实例讲解
2018/09/05 Javascript
jquery图片预览插件实现方法详解
2019/07/18 jQuery
教你30秒发布一个TypeScript包到NPM的方法步骤
2019/07/22 Javascript
[05:04]DOTA2上海特级锦标赛主赛事第二日TOP10
2016/03/04 DOTA
详解Python中的相对导入和绝对导入
2017/01/06 Python
Python使用PIL模块生成随机验证码
2017/11/21 Python
详解python 模拟豆瓣登录(豆瓣6.0)
2019/04/18 Python
django之使用celery-把耗时程序放到celery里面执行的方法
2019/07/12 Python
python:按行读入,排序然后输出的方法
2019/07/20 Python
CSS3 Media Queries(响应式布局可以让你定制不同的分辨率和设备)
2013/06/06 HTML / CSS
html5弹跳球示例代码
2013/07/23 HTML / CSS
座谈会主持词
2014/03/20 职场文书
《果园机器人》教学反思
2014/04/13 职场文书
合伙经营协议书
2014/04/18 职场文书
研修心得体会
2014/09/04 职场文书
广告公司文案策划岗位职责
2015/04/14 职场文书
2016年小学生寒假总结
2015/10/10 职场文书
Python基于Opencv识别两张相似图片
2021/04/25 Python
MySQL中distinct与group by之间的性能进行比较
2021/05/26 MySQL
vue+elementui 实现新增和修改共用一个弹框的完整代码
2021/06/08 Vue.js