【前端学习笔记】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;
}

  

 

posted @ 2016-11-11 18:15  朱两边  阅读(493)  评论(0编辑  收藏  举报