• 【前端学习笔记】JavaScript 常用方法兼容性封装


    获取样式函数封装

    function getStyle(ele,attr){
    	if(ele.currentStyle){
    		return ele.currentStyle[attr];
    	}
    	else{
    		return window.getComputedStyle(ele,null)[attr];
    	}
    };

    getClass()封装

    function getClass(element, names){
    	//如果存在getElementsByClassName()方法,则直接获取元素。
    	if(document.getElementsByClassName){
    		return element.getElementsByClassName(names);
    	}
    	var list = [];
    	//获取所在元素区域内所有子元素
    	var doms = element.getElementsByTagName('*');
    	//处理传入的类名参数
    	var namesList = myTrim(names);
    	var namesArr = namesList.split(' ');
    
    	for(var i = 0; i < doms.length; i++){
    		var flag = true;
    		//处理子元素类名
    		var str = myTrim(doms[i].className);
    		var arr = str.split(' ');
    		for(var j = 0; j < namesArr.length; j++){
    			//如果存在一个传入的类名参数的值在子元素类名中不存在,则标志位变为false。
    			if(arr.indexOf(namesArr[j]) == -1){
    				flag = false;
    			}
    		}
    		//若标志位始终为true,则把该子元素加入到数组中;
    		if(flag){
    			list.push(doms[i]);
    		}
    	}
    	return list;
    };
    
    //去除字符串两侧的空格,且把当中的多个空格合并成一个。
    function myTrim(str){
    	var str1 = str.replace(/(^s*)/g,'');
    	var str2 = str1.replace(/(s*$)/g,'');
    	var str3 = str2.replace(/(s+)/g,' ');
    	return str3;
    };

    仿jQuery $()获取元素

    //仿jQuery $()获取元素
    function $(str){
    	var s = str.charAt(0);
    	var ss = str.substr(1);
    	switch(s) {
    		case '#':
    			return document.getElementById(ss);
    			break;
    		case '.':
    			return getClass(document,ss);
    			break;
    		default:
    		    return document.getElementsByTagName(str);
    	}
    }

     获取屏幕宽度兼容封装

    function window_width(){
    	if(window.innerWidth != null){
    		return window.innerWidth;
    	}
    	else if(document.compatMode === 'CSS1Compat'){
    		return document.documentElement.clientWidth;
    	}
    	return document.body.clientWidth;
    }
    

      

  • 相关阅读:
    无题
    晒新玩具
    PHP开发调试环境配置(基于wampserver+Eclipse for PHP Developers )
    Java
    [转]const 与 readonly知多少
    Watin 杂谈
    WCF
    [转]: 两分钟彻底让你明白Android Activity生命周期(图文)!
    【转】单链表逆序
    桥梁模式和适配器模式的区别
  • 原文地址:https://www.cnblogs.com/zachary93/p/6055254.html
Copyright © 2020-2023  润新知