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 相关文章推荐
JavaScript的面向对象(一)
Nov 09 Javascript
javascript显示选择目录对话框的代码
Nov 10 Javascript
理解Javascript闭包
Nov 01 Javascript
Windows 系统下安装和部署Egret的开发环境
Jul 31 Javascript
JQuery自动触发事件的方法
Jun 13 Javascript
浅谈js和css内联外联注意事项
Jun 30 Javascript
jQuery Ajax Post 回调函数不执行问题的解决方法
Aug 15 Javascript
Vue.js简易安装和快速入门(第二课)
Oct 17 Javascript
浅谈对于react-thunk中间件的简单理解
May 01 Javascript
浅谈JS中this在各个场景下的指向
Aug 14 Javascript
JS实现简单tab选项卡切换
Oct 25 Javascript
vue实现前端分页完整代码
Jun 17 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/06/20 PHP
Eclipse PHPEclipse 配置的具体步骤
2017/08/08 PHP
聊聊 PHP 8 新特性 Attributes
2020/08/19 PHP
JS 容错处理代码, 屏蔽错误信息
2021/03/09 Javascript
JQquery的一些使用心得分享
2012/08/01 Javascript
js过滤特殊字符输入适合输入、粘贴、拖拽多种情况
2014/03/22 Javascript
JS返回iframe中frameBorder属性值的方法
2015/04/01 Javascript
js去除浏览器默认底图的方法
2015/06/08 Javascript
JavaScript识别网页关键字并进行描红的方法
2015/11/09 Javascript
AngularJS实现DOM元素的显示与隐藏功能
2016/11/22 Javascript
es7学习教程之Decorators(修饰器)详解
2017/07/21 Javascript
Web开发使用Angular实现用户密码强度判别的方法
2017/09/27 Javascript
详解HTML5 使用video标签实现选择摄像头功能
2017/10/25 Javascript
解决vue页面DOM操作不生效的问题
2018/03/17 Javascript
vue a标签点击实现赋值方式
2020/09/07 Javascript
sqlalchemy对象转dict的示例
2014/04/22 Python
Python中用memcached来减少数据库查询次数的教程
2015/04/07 Python
python访问系统环境变量的方法
2015/04/29 Python
Python实现自动签到脚本功能
2020/08/20 Python
微软英国官方网站:Microsoft英国
2016/10/15 全球购物
俄罗斯Sportmarket体育在线商店:用于旅游和户外活动
2019/11/12 全球购物
全球最受追捧的运动服品牌领先数字目的地:Stylerunner
2020/11/25 全球购物
大学生职业生涯规划书模板
2014/01/18 职场文书
社区端午节活动方案
2014/01/28 职场文书
小区消防演习方案
2014/02/21 职场文书
开展批评与自我批评发言材料
2014/05/15 职场文书
有关环保的标语
2014/06/13 职场文书
酒店销售经理岗位职责
2015/04/02 职场文书
党小组意见范文
2015/06/08 职场文书
安娜卡列尼娜观后感
2015/06/11 职场文书
理想国读书笔记
2015/06/25 职场文书
2016年优秀教师先进事迹材料
2016/02/26 职场文书
2019新员工试用期转正工作总结范文
2019/08/21 职场文书
导游词之安徽醉翁亭
2020/01/10 职场文书
使用Html+Css实现简易导航栏功能(导航栏遇到鼠标切换背景颜色)
2021/04/07 HTML / CSS
php+laravel 扫码二维码签到功能
2021/05/15 PHP