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获得网页窗口实际大小的示例代码
Sep 21 Javascript
详细分析使用AngularJS编程中提交表单的方式
Jun 19 Javascript
利用AJAX实现WordPress中的文章列表及评论的分页功能
May 17 Javascript
概述jQuery的元素筛选
Nov 23 Javascript
JS实现unicode和UTF-8之间的互相转换互转
Jul 05 Javascript
JQuery EasyUI 结合ztrIee的后台页面开发实例
Sep 01 jQuery
vue2.0 使用element-ui里的upload组件实现图片预览效果方法
Sep 04 Javascript
基于webpack4.X从零搭建React脚手架的方法步骤
Dec 23 Javascript
vue 解决异步数据更新问题
Oct 29 Javascript
微信小程序实现点击按钮后修改颜色
Dec 05 Javascript
jquery向后台提交数组的代码分析
Feb 20 jQuery
在vue中实现给每个页面顶部设置title
Jul 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
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
2012/10/31 PHP
PHP7内核之Reference详解
2019/03/14 PHP
php如何把表单内容提交到数据库
2019/07/08 PHP
PHP下载文件函数与用法示例
2019/09/27 PHP
PHP中abstract(抽象)、final(最终)和static(静态)原理与用法详解
2020/06/05 PHP
javascript 图片上传预览-兼容标准
2009/06/01 Javascript
JavaScript可否多线程? 深入理解JavaScript定时机制
2012/05/23 Javascript
JQuery select控件的相关操作实现代码
2012/09/14 Javascript
自己使用jquery写的一个无缝滚动的插件
2014/04/30 Javascript
jquery中 $.expr使用实例介绍
2014/06/09 Javascript
js实现鼠标移到链接文字弹出一个提示层的方法
2015/05/11 Javascript
jQuery调用WebMethod(PageMethod) NET2.0的方法
2016/04/15 Javascript
浅析JS异步加载进度条
2016/05/05 Javascript
JavaScript数组的5种迭代方法
2017/09/29 Javascript
微信小程序实现打开并下载服务器上面的pdf文件到手机
2019/09/20 Javascript
理解Proxy及使用Proxy实现vue数据双向绑定操作
2020/07/18 Javascript
[01:35]辉夜杯战队访谈宣传片—iG.V
2015/12/25 DOTA
Python文件处理
2016/02/29 Python
Python实现的特征提取操作示例
2018/12/03 Python
Python实现的线性回归算法示例【附csv文件下载】
2018/12/29 Python
python pexpect ssh 远程登录服务器的方法
2019/02/14 Python
django 数据库连接模块解析及简单长连接改造方法
2019/08/29 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
2020/12/04 Python
实习自荐信
2013/10/13 职场文书
商务英语专业自荐信
2013/10/14 职场文书
初中生自我鉴定
2014/02/04 职场文书
业务部门经理岗位职责
2014/02/23 职场文书
教育专业毕业生推荐信
2014/07/10 职场文书
社区活动策划方案
2014/08/21 职场文书
房屋出售授权委托书
2014/10/12 职场文书
文化大革命观后感
2015/06/17 职场文书
行政处罚听证告知书
2015/07/01 职场文书
小学校长开学致辞
2015/07/29 职场文书
护士心得体会范文
2016/01/25 职场文书
巾帼建功标兵先进事迹材料
2016/02/29 职场文书
Python趣味挑战之教你用pygame画进度条
2021/05/31 Python