zoukankan      html  css  js  c++  java
  • 兼容低版本浏览器的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;
     }
    }

      

  • 相关阅读:
    Designing IP-Based Video Conferencing Systems: Dealing with Lip Synchronization(唇音同步)
    ffmpeg 如何音视频同步
    音视频同步(播放)原理
    您的 PHP 似乎没有安装运行 WordPress 所必需的 MySQL 扩展”处理方法
    ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
    ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statemen
    获得H.264视频分辨率的方法
    1080P、720P、4CIF、CIF所需要的理论带宽
    linux mysql 操作命令
    RTP/RTCP的时间同步机制
  • 原文地址:https://www.cnblogs.com/Eyrum/p/4609821.html
Copyright © 2011-2022 走看看