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
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持毛票票!