JS仿JQuery选择器功能
JQuery作为应用最广的JS库,其最强大的功能之一就是几乎涵盖所有方法的且代码十分简短的选择器功能,我们也可用自己的代码实现此功能,代码逻辑、使用方法与JQuery一致
functionZQuery(arg){ this.elements=[];//存东西 this.domString='';//保存字符串标签 if(typeofarg=='function'){ //DOMReady DOMReady(arg); }elseif(typeofarg=='string'||arginstanceofString){ if(arg.indexOf('<')!=-1){ this.domString=arg; }else{ //获取元素 this.elements=getEle(arg); this.length=this.elements.length; } }else{ //原生对象-》ZQuery对象 this.elements.push(arg); this.length=this.elements.length; } } ZQuery.prototype.css=function(name,value){ if(arguments.length==2){ //设置一个样式 for(vari=0;i=200&&oAjax.status<300||oAjax.status==304){ json.success&&json.success(oAjax.responseText); }else{ json.error&&json.error(oAjax.status); } } }; } functionjsonp(json){ json=json||{}; if(!json.url)return; json.timeout=json.timeout||15000; json.cbName=json.cbName||'cb'; json.data=json.data||{}; json.data[json.cbName]='show'+Math.random(); json.data[json.cbName]=json.data[json.cbName].replace('.',''); json.timer=setTimeout(function(){ window[json.data[json.cbName]]=function(res){ oHead.removeChild(oS); json.error&&json.error('网络超时!'); } },json.timeout); window[json.data[json.cbName]]=function(res){ clearTimeout(json.timer); oHead.removeChild(oS); json.success&&json.success(res); } varoHead=document.getElementsByTagName('head')[0]; varoS=document.createElement('script'); oS.src=json.url+'?'+json2url(json.data); oHead.appendChild(oS); } functiongetStyle(obj,sName){ return(obj.currentStyle||getComputedStyle(obj,false))[sName]; } functionaddEvent(obj,sEv,fn){ if(obj.addEventListener){ obj.addEventListener(sEv,function(ev){ varoEvent=ev||event; if(fn.call(obj,oEvent)==false){ oEvent.cancelBubble=true; oEvent.preventDefault&&oEvent.preventDefault(); } },false); }else{ obj.attachEvent('on'+sEv,function(){ varoEvent=ev||event; if(fn.call(obj,oEvent)==false){ oEvent.cancelBubble=true; returnfalse; } }); } } functionDOMReady(fn){ if(document.addEventListener){ addEvent(document,'DOMContentLoaded',function(){ fn&&fn(); }); }else{ addEvent(document,'onreadystatechange',function(){ if(document.readyState=='complete'){ fn&&fn(); } }); } } functiongetByClass(oParent,sClass){ if(oParent.getElementsByClassName){ returnoParent.getElementsByClassName(sClass); }else{ varaResult=[]; varaEle=oParent.getElementsByTagName('*'); varre=newRegExp('\\b'+sClass+'\\b','g'); for(vari=0;i 以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持毛票票!