zoukankan      html  css  js  c++  java
  • 节点遍历函数

    URL: http://developer.mozilla.org/en/docs/Whitespace_in_the_DOM

    火狐官网上找到的一组函数,相当于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;
    }
    
  • 相关阅读:
    什么是方法以及evall()和isnan()和number()string()的使用
    js的本质/数据类型
    if条件的种类
    js中期知识点总结11月7日
    js中期知识点总结11月6日
    js中期知识点总结11月5日
    js中期知识点总结11月2日
    js中期总结11月1日
    js中期知识点总结10月31日
    html前期js知识点10月25日
  • 原文地址:https://www.cnblogs.com/rubylouvre/p/1619496.html
Copyright © 2011-2022 走看看