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编程小常识很有用
Nov 26 Javascript
javascript为按钮注册回车事件(设置默认按钮)的方法
May 09 Javascript
谈一谈jQuery核心架构设计
Mar 28 Javascript
自制微信公众号一键排版工具
Sep 22 Javascript
jQuery中的deferred对象和extend方法详解
May 08 jQuery
一篇文章让你彻底弄懂JS的事件冒泡和事件捕获
Aug 14 Javascript
微信小程序模板和模块化用法实例分析
Nov 28 Javascript
JS实现字符串翻转的方法分析
Aug 31 Javascript
js限制input只能输入有效的数字(第一个不能是小数点)
Sep 28 Javascript
手把手带你封装一个vue component第三方库
Feb 14 Javascript
JQuery实现简单的复选框树形结构图示例【附源码下载】
Jul 16 jQuery
JavaScript实现消消乐的源代码
Jan 12 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
德生H-501的评价与改造
2021/03/02 无线电
php实现的一个简单json rpc框架实例
2015/03/30 PHP
ThinkPHP中数据操作案例分析
2015/09/27 PHP
PHP编程基本语法快速入门手册
2016/01/07 PHP
PHP实现的62进制转10进制,10进制转62进制函数示例
2019/06/06 PHP
PHP数据源架构模式之表入口模式实例分析
2020/01/23 PHP
简单的无缝滚动程序-仅几行代码
2007/05/08 Javascript
document.designMode的功能与使用方法介绍
2007/11/22 Javascript
javascript与CSS复习(《精通javascript》)
2010/06/29 Javascript
关于用Jquery的height()、width()计算动态插入的IMG标签的宽高的问题
2010/12/08 Javascript
javascript实现动态模态绑定grid过程代码
2014/09/22 Javascript
基于jQuery实现仿淘宝套餐选择插件
2015/03/04 Javascript
AngularJS使用angular.bootstrap完成模块手动加载的方法分析
2017/01/19 Javascript
详细AngularJs4的图片剪裁组件的实例
2017/07/12 Javascript
详解babel升级到7.X采坑总结
2019/05/12 Javascript
微信小程序点击view动态添加样式过程解析
2020/01/21 Javascript
Vue+ElementUI 中级联选择器Bug问题的解决
2020/07/31 Javascript
Python设计模式之代理模式实例
2014/04/26 Python
Python随机生成一个6位的验证码代码分享
2015/03/24 Python
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
2017/04/11 Python
Python编程argparse入门浅析
2018/02/07 Python
python编程测试电脑开启最大线程数实例代码
2018/02/09 Python
Python3实现计算两个数组的交集算法示例
2019/04/03 Python
IronPython连接MySQL的方法步骤
2019/12/27 Python
Pytorch 实现冻结指定卷积层的参数
2020/01/06 Python
解决Jupyter notebook中.py与.ipynb文件的import问题
2020/04/21 Python
html5 利用canvas实现超级玛丽简单动画
2013/09/06 HTML / CSS
毕业生大学生活自我总结
2014/01/31 职场文书
《威尼斯的小艇》教学反思
2014/02/17 职场文书
医学生自我鉴定范文
2014/03/26 职场文书
教师作风建设剖析材料
2014/10/11 职场文书
个人股份转让协议书范本
2014/10/26 职场文书
2014年单位工作总结范文
2014/11/27 职场文书
个人事迹材料范文
2014/12/29 职场文书
竞聘书的秘诀
2019/04/02 职场文书
一篇文章看懂MySQL主从复制与读写分离
2021/11/07 MySQL