• 兼容低版本浏览器的getElementByClassName方法


    /*兼容低版本浏览器的getElementByClassName方法*/
    function getElementsByClassName(root,className){
    	if(root.getElementsByClassName){
    		return root.getElementsByClassName(className);
    	}else{
    		var elements=root.getElementsByTagName();
    		var result=[];
    		for(var i=0,element;element=elements[i];i++){
    			//hasClassName判断元素是否有className属性
    			if(hasClassName(element,className)){
    				result.push(element);
    			}
    		}
    		return result;
    	}
    }
    
    // ----------------------------------------------------------------------------
    // HasClassName
    //
    // Description : returns boolean indicating whether the object has the class name
    //    built with the understanding that there may be multiple classes
    //
    // Arguments:
    //    element              - element to manipulate
    //    className                - class name to add
    //
    function hasClassName(element, className)
       {
     
       // if there is a class
       if ( element.className )
          {
     
          // the classes are just a space separated list, so first get the list
          var arrList = element.className.split(' ');
     
          // get uppercase class for comparison purposes
          var classNameUpper = className.toUpperCase();
     
          // find all instances and remove them
          for ( var i = 0; i < arrList.length; i++ )
             {
     
             // if class found
             if ( arrList[i].toUpperCase() == classNameUpper )
                {
     
                // we found it
                return true;
     
                }
     
             }
     
          }
     
       // if we got here then the class name is not there
       return false;
     
       }


    //----------------------------------------------------------------

    function getElementsByClassName(element, names) {
      if (element.getElementsByClassName) {
        return element.getElementsByClassName(names);
      } else {
        var elements = element.getElementsByTagName('*');
        var result = [];
        var element,
        classNameStr,
        flag;
        names = names.split(' ');
        for (var i = 0; element = elements[i]; i++) {
          classNameStr = ' ' + element.className + ' ';
          flag = true;
          for (var j = 0, name; name = names[j]; j++) {
            if (classNameStr.indexOf(' ' + name + '') == -1) {
              flag = false;
              break;
          }
        }
          if (flag) {
            result.push(element);
          }
      }
       return result;
     }
    }

      

  • 相关阅读:
    Combine 框架,从0到1 —— 4.在 Combine 中使用计时器
    Combine 框架,从0到1 —— 4.在 Combine 中使用通知
    Combine 框架,从0到1 —— 3.使用 Subscriber 控制发布速度
    Combine 框架,从0到1 —— 2.通过 ConnectablePublisher 控制何时发布
    使用 Swift Package Manager 集成依赖库
    iOS 高效灵活地配置可复用视图组件的主题
    构建个人博客网站(基于Python Flask)
    Swift dynamic关键字
    Swift @objcMembers
    仅用递归函数操作逆序一个栈(Swift 4)
  • 原文地址:https://www.cnblogs.com/Eyrum/p/4609821.html
Copyright © 2020-2023  润新知