docs: function _getElements(parent, list, criteria){
      var childNodes = parent.childNodes;
      if (!childNodes) return list;
      for (var node, i = 0, n = childNodes.length; i < n; i++){
          node = childNodes[i];
          if (criteria && criteria.call(null, node) === true) list.push(node);
          _getElements(node, list, criteria);
      }
  }