javascript 节点遍历函数

 更新时间:2010年03月28日 14:02:32   作者:  
火狐官网上找到的一组函数,相当于treeWalker,有了它可以方便地在IE实现Traversal API 2的所有功能
火狐官网上找到的一组函数,相当于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;
}

相关文章

  • 前端开发之CSS原理详解

    前端开发之CSS原理详解

    这篇文章主要介绍了前端开发之CSS原理详解的相关资料,需要的朋友可以参考下
    2017-03-03
  • uniapp使用uni自带websocket进行即时通讯详细步骤

    uniapp使用uni自带websocket进行即时通讯详细步骤

    在开发程序过程中通信功能还是比较常用到的,下面这篇文章主要给大家介绍了关于uniapp使用uni自带websocket进行即时通讯的详细步骤,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • js上传图片及预览功能实例分析

    js上传图片及预览功能实例分析

    这篇文章主要介绍了js上传图片及预览功能,实例分析了javascript操作图片上传预览功能的实现方法,需要的朋友可以参考下
    2015-04-04
  • JS之相等操作符详解

    JS之相等操作符详解

    下面小编就为大家带来一篇JS之相等操作符详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • JS实现转动随机数抽奖特效代码

    JS实现转动随机数抽奖特效代码

    这篇文章主要为大家详细介绍了一款转动随机数抽奖的JS特效代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-08-08
  • JS块级作用域和私有变量实例分析

    JS块级作用域和私有变量实例分析

    这篇文章主要介绍了JS块级作用域和私有变量,结合实例形式较为详细的分析了javascript块级作用域和私有变量相关概念、原理、操作技巧,需要的朋友可以参考下
    2019-05-05
  • 深入理解ES6之数据解构的用法

    深入理解ES6之数据解构的用法

    本文介绍了深入理解ES6之数据解构的用法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • Bootstrap多级菜单的实现代码

    Bootstrap多级菜单的实现代码

    这篇文章主要介绍了Bootstrap多级菜单的简单实现代码,需要的朋友可以参考下
    2017-05-05
  • Javascript玩转继承(三)

    Javascript玩转继承(三)

    在前两篇文章中,介绍了构造继承和原型继承。今天把剩下的两种写完,这两种的应用相对于前两种来说应用很少,因此我把他们称为是非主流继承方式
    2014-05-05
  • javascript事件的绑定基础实例讲解(34)

    javascript事件的绑定基础实例讲解(34)

    这篇文章主要为大家详细介绍了javascript事件的绑定基础实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02

最新评论