前言
Lesson-1 初步体验1.虽然说市面上有许多讲解jQuery源码或者是也有类似如何搭建一个属于自己的javascript库的文章。
2.但毕竟更多数人的水平并没有达到单纯看源码解析就能读懂jQuery
3.如果你既不能通过书籍视频和他人文章的源码解析明白jQuery,也想自己实现一个jQuery的。
4.本系列就是以一些不同的方法手段,简单的代码,实现了一套与jQuery一样的API
5.最后在每篇文章的最后会留下github源码地址,希望能得到大家star的认可与支持,谢谢。
这个版本呢,先来加四个很简单的方法感受感受下!
首先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的一样就知道是否成功了.
github地址: https://github.com/MeCKodo/forchange/tree/master/lesson-1
可想自己造一个jQuery库?(一):http://www.imooc.com/article/1926
点击查看更多内容
6人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦