Lesson-1 开端体验
这个版本呢,先来加四个很简朴的要领感觉感觉下!
起首3个class不必说了
hasClass : function(cls) {
var reg = new RegExp('(\\s|^)' + cls + '(\\s|$)');
for (var i = 0; i < this.length; i++) {
if (this[i].className.match(reg)) return true;
return false;
}
return this;
},
addClass : function(cls) {
var reg = new RegExp('(\\s|^)' + cls + '(\\s|$)');
for (var i = 0; i < this.length; i++) {
if(!this[i].className.match(reg))
this[i].className += ' ' + cls;
}
return this;
},
removeClass : function(cls) {
var reg = new RegExp('(\\s|^)' + cls + '(\\s|$)');
for (var i = 0; i < this.length; i++) {
if (this[i].className.match(reg))
this[i].className = this[i].className.replace(' ' + cls,'');
}
return this;
}
然后新增一个
css : function(attr,val) {//链式测试
console.log(this.length);
for(var i = 0;i < this.length; i++) {
if(arguments.length == 1) {
return getComputedStyle(this[i],null)[attr];
}
this[i].style[attr] = val;
}
return this;
}
这些实在都很简朴,我们都要记着,我们封装的DOM
对象是一个数组,所以一建都需要用轮回来举行种种个样的处置惩罚.
然后css这我是用arguments
的个数来举行推断是取值照样设值.
末了万万别忘了每一个要领的末了都要return this
以便链式挪用.
人人能够自行拿这几个要领 log出来看看是不是是与jQuery的一样就晓得是不是胜利了.
您的star就是我疾速更新的动力 : )
github地点: https://github.com/MeCKodo/forchange/tree/master/lesson-1
可想造一个属于你本身的jQuery库?(一):http://segmentfault.com/a/1190000003994531