function aa(selector){
if(typeof selector=="string"){
if(selector.charAt(0)=="."){
var doms=this.getClass(selector.slice(1)); //this指什么
for(var j=0;j<doms.length;j++){
this[j]=doms[j];
}
this.length=doms.length;
}else if(selector.charAt(0)=="#"){
this[0]=document.getElementById(selector.slice(1));
this.length=1;
}else if(/^[a-zA-Z][a-zA-z1-6]{0,10}$/.test(selector)){
var doms=document.getElementsByTagName(selector);
for(var j=0;j<doms.length;j++){
this[j]=doms[j];
}
this.length=doms.length;
}
}else if(typeof selector=="function"){
this.ready(selector);
}else if(selector.nodeType==1){ //传入的是对象
this[0]=selector;
this.length=1;
}
}
aa.prototype={
getClass:function(classname,obj){
var obj=obj||document;
if(obj.getElementsByClassName){
return obj.getElementsByClassName(classname);
}else{
var all=obj.getElementsByTagName("*");
var arr=[];
for(var i=0;i<all.length;i++){
if(this.checkClass(classname,all[i].className)){
arr.push(all[i])
}
}
return arr;
}
},
ready:function(callback){
document.addEventListener("DOMContentLoaded",function(){
callback();
},false)
},
checkClass:function(class1,class2){
var arr=class2.split(" "); //imgs one ,imgs two
for(var i=0;i<arr.length;i++){
if(arr[i]==class1){
return true;
}
}
return false;
},
each:function(callback){
for(var i=0;i<this.length;i++){
callback(i,this[i]);
}
},
css:function(styleObj){
this.each(function(index,obj){
for(var i in styleObj){
obj.style[i]=styleObj[i];
}
})
return this;
},
html:function(val){
this.each(function(index,obj){
obj.innerHTML=val;
})
return this;
},
attr:function(attrObj){
this.each(function(index,obj){
for(var i in attrObj){
obj.setAttribute(i,attrObj[i]);
}
})
return this;
},
addClass:function(classname){
this.each(function(index,obj){
var oldclass=obj.className;
obj.className=oldclass+" "+classname;
})
return this;
},
click:function(callback){
this.each(function(index,obj){
obj.onclick=function(){
callback.call(obj);
}
})
return this;
}
}
/*工厂函数*/
function $(selector){
return new aa(selector);
}
function each(callback){
for (var i = 0; i < this.length; i++) {
callback(i,this[i])
};
}