1、输入指定的类型选择器,返回dom节点,实现不同浏览器的兼容。根据selector获取dom节点1.1参数验证根据正则检查参数是否符合规范,根据不同的类型进行不同的操作varidPattern=/^#.{1,}$/varclassPattern=/^\..{1,}$/vartagPattern=/^[a-zA-Z]+.*$/if(typeofquery!=='string'||query.length==0){thrownewError('请传入一个字符串类型的参数,且长度大于1')}elseif(idPattern.test(query)){console.log('id')}elseif(tagPattern.test(query)){console.log('tag')}elseif(classPattern.test(query)){console.log('class')}else{thrownewError('请正确输入参数,eg:#id,.class,div')}1.2id&tagNameid和tagName比较简单,直接使用下面两个函数返回dom节点即可,id返回单个dom节点,tagName返回fordomlistif(idPattern.test(query)){varid=query.slice(1)返回document.getElementById(id)}elseif(tagPattern.test(query)){returndocument.getElementsByTagName(query)}1.3class//判断是否有querySelectorAll方法if(!document.querySelectorAll){returndocument.querySelectorAll(query);}else{varclassName=query.slice(1)varchildren=文档nt.getElementsByTagName('*');//获取html中所有DOM节点varelements=[];//用空数组存放要获取的类名for(vari=0;i
