【封装】【JS】getClassName方法、get class+id封装
//-------------------封装1 getClassName-------------------------- //形参传入一个字符串,通过此方法,获取界面中所有含有此类名的DOM元素。 //并返回包含所有类名DOM的数组 //因为我们遍历所有的DOM对象很占内存,所以我们可以挑出制定的DOM对象,并从中挑出classname。 function getClassName(para,obj){ obj = obj||document; if(obj.getElementsByClassName){ return obj.getElementsByClassName(para); } else { var boxClass = obj.getElementsByTagName('*'); var arrClass = []; for (var i = 0; i < boxClass.length; i++) { // var name = boxClass[i].className; var nameBox = boxClass[i].className.split(' '); for (var j = 0; j < nameBox.length; j++) { if (nameBox[j] == para) { arrClass.push(boxClass[i]); } }; }; } return(arrClass); }
//封装2 id+class
function $(para,obj){ if(para.charAt(0) == '#' ){ //通过截取字符串来判断执行的是获取id还是class var arr = para.split("#"); var idName = arr[1]; return document.getElementById(idName); } else if(para.charAt(0) == '.') { var arr1 = para.split("."); var classming = arr1[1]; obj = obj||document; if(obj.getElementsByClassName){ return obj.getElementsByClassName(classming); } else { var boxClass = obj.getElementsByTagName('*'); var arrClass = []; for (var i = 0; i < boxClass.length; i++) { var nameBox = boxClass[i].className.split(' '); for (var j = 0; j < nameBox.length; j++) { if (nameBox[j] == classming) { arrClass.push(boxClass[i]); } }; }; } return(arrClass); } else { return false; } }