index.js
function getElementsByClassName(node, classname) {
  if (node.getElementsByClassName) { // use native implementation if available
    return node.getElementsByClassName(classname);
  } else {
    return (function getElementsByClass(searchClass, node) {
      if (node == null) node = document;
      var classElements = [],
        els = node.getElementsByTagName("*"),
        elsLen = els.length,
        pattern = new RegExp("(^|\\s)" + searchClass + "(\\s|$)"),
        i, j;
      for (i = 0, j = 0; i < elsLen; i++) {
        if (pattern.test(els[i].className)) {
          classElements[j] = els[i];
          j++;
        }
      }
      return classElements;
    })(classname, node);
  }
}
function getElementsByClassName(node, classname) {
  if (node.getElementsByClassName) { // use native implementation if available
    return node.getElementsByClassName(classname);
  } else {
    return (function getElementsByClass(searchClass, node) {
      if (node == null) node = document;
      var classElements = [],
        els = node.getElementsByTagName("*"),
        elsLen = els.length,
        pattern = new RegExp("(^|\\s)" + searchClass + "(\\s|$)"),
        i, j;
      for (i = 0, j = 0; i < elsLen; i++) {
        if (pattern.test(els[i].className)) {
          classElements[j] = els[i];
          j++;
        }
      }
      return classElements;
    })(classname, node);
  }
}
function getElementsByClassName ( node , classname ) { if ( node . getElementsByClassName ) { // use native implementation if available return node . getElementsByClassName ( classname ) ; } else { return ( function getElementsByClass ( searchClass , node ) { if ( node == null ) node = document ; var classElements = [ ] , els = node . getElementsByTagName ( "*" ) , elsLen = els . length , pattern = new RegExp ( "(^|\\s)" + searchClass + "(\\s|$)" ) , i , j ; for ( i = 0 , j = 0 ; i < elsLen ; i ++ ) { if ( pattern . test ( els [ i ] . className ) ) { classElements [ j ] = els [ i ] ; j ++ ; } } return classElements ; } ) ( classname , node ) ; } }
/*根据className获取dom集合
@node {Object} dom 对象
@classname {String} 选择对象，基于className
demo: var elements = getElementsByClassName(document, className)
/ * 根据className获取dom集合