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 相关文章推荐
9个javascript语法高亮插件 推荐
Jul 18 Javascript
JS.getTextContent(element,preformatted)使用介绍
Sep 21 Javascript
JS中的Replace方法使用经验分享
May 20 Javascript
jQuery原型属性和原型方法详解
Jul 07 Javascript
js识别uc浏览器的代码
Nov 06 Javascript
快速掌握WordPress中加载JavaScript脚本的方法
Dec 17 Javascript
JS延时器提示框的应用实例代码解析
Apr 27 Javascript
javascript实现根据函数名称字符串动态执行函数的方法示例
Dec 28 Javascript
Vue组件Draggable实现拖拽功能
Dec 01 Javascript
在vue项目中使用codemirror插件实现代码编辑器功能
Aug 27 Javascript
jQuery实现form表单基于ajax无刷新提交方法实例代码
Nov 04 jQuery
vue二选一tab栏切换新做法实现
Jan 19 Vue.js
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中的替代语法简介
2014/08/22 PHP
FastCGI 进程意外退出造成500错误
2015/07/26 PHP
PHP的PDO预定义常量讲解
2019/01/24 PHP
PHP whois查询类定义与用法示例
2019/04/03 PHP
php的对象传值与引用传值代码实例讲解
2021/02/26 PHP
(function($){...})(jQuery)的意思
2010/07/22 Javascript
jquery 单引号和双引号的区别及使用注意
2013/07/31 Javascript
js 固定悬浮效果实现思路代码
2013/08/02 Javascript
JS 获取滚动条高度示例代码
2013/10/24 Javascript
node.js中的emitter.on方法使用说明
2014/12/10 Javascript
javascript使用appendChild追加节点实例
2015/01/12 Javascript
jQuery控制frames及frame页面JS的方法
2016/03/08 Javascript
Jquery实现跨域异步上传文件总结
2017/02/03 Javascript
vue2.0 资源文件assets和static的区别详解
2018/04/08 Javascript
JS限制输入框输入的实现代码
2018/07/02 Javascript
JS实现打字游戏
2019/12/17 Javascript
vue中实现点击按钮滚动到页面对应位置的方法(使用c3平滑属性实现)
2019/12/29 Javascript
jQuery实现获取多选框的值示例
2020/02/07 jQuery
js+cavans实现图片滑块验证
2020/09/29 Javascript
python进程类subprocess的一些操作方法例子
2014/11/22 Python
使用Python读写文本文件及编写简单的文本编辑器
2016/03/11 Python
python修改字典键(key)的方法
2019/08/05 Python
如何基于pandas读取csv后合并两个股票
2020/09/25 Python
python 爬取腾讯视频评论的实现步骤
2021/02/18 Python
香港唯港荟酒店预订:Hotel ICON
2018/03/27 全球购物
教师业务学习制度
2014/01/25 职场文书
公务员转正考察材料
2014/02/07 职场文书
《玩具柜台前的孩子》教学反思
2014/02/13 职场文书
预备党员2014全国两会学习心得体会
2014/03/10 职场文书
原材料检验岗位职责
2014/03/15 职场文书
2014组织生活会方案
2014/05/19 职场文书
社区党员群众路线教育实践活动心得体会
2014/11/03 职场文书
夫妻分居协议书范文
2014/11/26 职场文书
服务员岗位职责
2015/02/03 职场文书
在职人员跳槽求职信
2015/03/20 职场文书
新学期开学标语2015
2015/07/16 职场文书