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 鼠标悬浮图片显示原图 移出鼠标后原图消失(多图)
Dec 28 Javascript
jquery实现用户信息修改验证输入方法汇总
Jul 18 Javascript
jquery validate表单验证的基本用法入门
Jan 18 Javascript
PHP实现记录代码运行时间封装类实例教程
May 08 Javascript
JavaScript实现简单的星星评分效果
May 18 Javascript
vue-resouce设置请求头的三种方法
Sep 12 Javascript
vue2.0安装style/css loader的方法
Mar 14 Javascript
Vue中的混入的使用(vue mixins)
Jun 01 Javascript
Mint-UI时间组件起始时间问题及时间插件使用
Aug 20 Javascript
Vue实现开关按钮拖拽效果
Sep 22 Javascript
mustache.js实现首页元件动态渲染的示例代码
Dec 28 Javascript
react中的DOM操作实现
Jun 30 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
Extended CHM PHP 语法手册之 DIY
2006/10/09 PHP
PHP配置心得包含MYSQL5乱码解决
2006/11/20 PHP
PHP文件上传原理简单分析
2011/05/29 PHP
php数组函数序列之array_sum() - 计算数组元素值之和
2011/10/29 PHP
关于php程序报date()警告的处理(date_default_timezone_set)
2013/10/22 PHP
PHP中的命名空间相关概念浅析
2015/01/22 PHP
PHP判断当前使用的是什么浏览器(推荐)
2019/10/27 PHP
nodejs npm包管理的配置方法及常用命令介绍
2014/06/05 NodeJs
jquery显示隐藏input对象
2014/07/21 Javascript
JQuery动画与特效实例分析
2015/02/02 Javascript
AngularJS实现全选反选功能
2015/12/08 Javascript
JS控制伪元素的方法汇总
2016/04/06 Javascript
深入理解JavaScript定时机制
2016/10/27 Javascript
WEB开发之注册页面验证码倒计时代码的实现
2016/12/15 Javascript
jquery.zclip轻量级复制失效问题
2017/01/08 Javascript
js 判断当前时间是否处于某个一个时间段内
2019/09/19 Javascript
微信小程序12行js代码自己写个滑块功能(推荐)
2020/07/15 Javascript
python分割和拼接字符串
2013/11/01 Python
python 给DataFrame增加index行名和columns列名的实现方法
2018/06/08 Python
python实现转盘效果 python实现轮盘抽奖游戏
2019/01/22 Python
python判断所输入的任意一个正整数是否为素数的两种方法
2019/06/27 Python
解决reload(sys)后print失效的问题
2020/04/25 Python
k-means 聚类算法与Python实现代码
2020/06/01 Python
pycharm中leetcode插件使用图文详解
2020/12/07 Python
MAC彩妆英国官网:M·A·C UK
2018/05/30 全球购物
日本小田急百货官网:Odakyu
2018/07/19 全球购物
房地产销售员的自我评价分享
2013/12/04 职场文书
网站创业计划书
2014/04/30 职场文书
代理人委托书
2014/08/01 职场文书
班级团队活动方案
2014/08/14 职场文书
机械专业毕业生自我鉴定2014
2014/10/04 职场文书
婚礼庆典答谢词
2015/01/20 职场文书
现实表现证明材料
2015/06/19 职场文书
2015年除四害工作总结
2015/07/23 职场文书
详解如何使用Nginx解决跨域问题
2022/05/06 Servers
Java获取字符串编码格式实现思路
2022/09/23 Java/Android