- 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;
- }
- }
- }
来源: https://www.cnblogs.com/bruce-w/p/11456601.html