// jquery構(gòu)造函數(shù)
function Jquery(selector, context) {
return new Jquery.fn.init(selector, context)
}
// 簡(jiǎn)化書寫, 方便訪問原型
Jquery.fn = Jquery.prototype = {
constructor: Jquery,
length: 0,
push: Array.prototype.push,
slice: Array.prototype.slice,
}
// 實(shí)現(xiàn)獲取dom元素類, init是一個(gè)構(gòu)造函數(shù),用來生成jquery的dom對(duì)象的
Jquery.fn.init = function(selector, context) {
if (!selector) return
this.context = context || document
this.elements = this.context.querySelectorAll(selector)
this.length = 0
// 遍歷elements
for (let i = 0; i < this.elements.length; i++) {
this[i] = this.elements[i]
this.length++
}
}
// init類的原型指向Jquery的原型,使實(shí)例化對(duì)象能訪問Jquery原型上的方法
Jquery.fn.init.prototype = Jquery.prototype
// 為jquery添加靜態(tài)方法或原型方法。
Jquery.extends = Jquery.fn.extends = function(obj) {
for (let key in obj) {
this[key] = obj[key]
}
}
// 將這些方法拓展到Jquery原型上, 那么init的實(shí)例化對(duì)象就能訪問這些方法
Jquery.fn.extends({
html: function(text){
for (let i = 0; i < this.length; i++) {
this[i].innerHTML = text
}
// 返回this,打點(diǎn)調(diào)用
return this
},
css: function(key, val) {
if (typeof key === 'string') {
for (let i = 0; i < this.length; i++) {
this[i].style[key] = val
}
} else {
for(let i = 0; i < this.length; i++) {
for (let k in key) {
this[i].style[k] = key[k]
}
}
}
return this
}
})
// 簡(jiǎn)化Jquery書寫
const $ = Jquery
// console.log($('p'))
$('p')
.css('color', 'red')
.html('嘻嘻哈哈')
簡(jiǎn)單實(shí)現(xiàn)JQuery
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 一、實(shí)現(xiàn)addClass 第一步:封裝 封裝addClass函數(shù) 如果輸入的類是多個(gè),通過DOMAPI中的數(shù)組的f...
- 具體的思路:1.封裝一個(gè)函數(shù),傳入節(jié)點(diǎn)或者選擇器字符串,可以返回偽數(shù)組,偽數(shù)組中包含獲取到的dom元素==> 對(duì)函...
- 完整代碼 (function(global, factory) { typeof define === 'fun...
- 如下的代碼結(jié)構(gòu): 需求如下: 思路分析 寫一個(gè)方法 ,找到這個(gè)節(jié)點(diǎn)寫一個(gè) addClass方法,給節(jié)點(diǎn)添加樣式寫一...
- 寫功能的時(shí)候查了很多的demo。各有好壞。恰巧自己也是剛轉(zhuǎn)前端。索性摸索自己寫了一個(gè)。項(xiàng)目要求的功能很多、整理的時(shí)...