function $(selector){ //获取第一个字符 var firstLetter = selector.charAt(0); //对第一个字符进行判断 switch(firstLetter){ //#则为id名称; case '#' : return idSelector(selector); break; //.则为class; case '.' : return classSelector(selector); break; default : return tagNameSelector(selector); } //idSelector function idSelector(idS){ return document.getElementById(idS.substring(1)); } //tagNameSelector; function tagNameSelector(tagNameS){ return document.getElementsByTagName(tagNameS); } //classSelector function classSelector(classS){ //兼容处理 if(docuent.getElementsByClassName){ return document.getElementsByClassName(classS.substring(1)); }else{ //放置dom节点的数组 var arr = []; //如果浏览器不兼容getElementsByClassName //获取页面中的所有的元素 var arrTag = document.getElementsByTagName('*'); //利用正则匹配找到对应的标签 var reg = new RegExp('(^|\s)'+classS.substring(1)+'($|\s)','g'); //遍历所有的标签 for(var i = 0 , k = arrTag.length ; i < k ; i++){ //如果标签拥有对用的class名称 push 到一个数组中 console.log(arrTag[i].className); if(reg.test(arrTag[i].className)){ arr.push(arrTag[i]); } } return arr; } } }