whole_func_string: 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);
    }
  }
func_code_string: 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);
    }
  }
func_documentation_string: /*根据className获取dom集合
  @node {Object} dom 对象
  @classname {String} 选择对象，基于className
  demo: var elements = getElementsByClassName(document, className)