猿问
js 模仿jQuer实现添加类名方法
如:var doc=document.getElementById("id");
doc.addClass(className);
直接可以像jQuery一样可以打点.调用的。
慕前端8664132
浏览 1518
回答 1
1回答
千秋此意
// 顺手写的demo肯定不完善,真要用自己写个addClass函数吧 HTMLElement.prototype.addClass = function(sClass) { if (new RegExp(sClass).test(this.className)) return; this.className += !this.className.length ? sClass : ' ' + sClass; }你要在原生的DOM对象上直接用 . 来调用,可以直接对HTMLElement的原型进行扩展。。当然jQuery不是这么做的,你在使用 $('div').addClass('sClass');这些方法的时候操作的并不是原生的DOM对象,而是通过jQuery包装过的对象,包装后的jQuery对象上就带有了各种各样的jQuery方法,所以你都能直接在那些对象上用 . 来调用———— 再补充个例子 ————function $(elem) { return new baseObj(elem); } function baseObj(elem) { this.elem = elem; } baseObj.prototype = { addClass: function(sClass) { this.elem.className += ' ' + sClass; } }jQuery的包装过程大概类似这样 用$选择器拿到的对象是包装后的jQuery对象,并不是原生的js对象
2
0
3
随时随地看视频
慕课网APP
相关分类
JavaScript
我要回答