實(shí)現(xiàn)一個(gè)簡單的jquery 的api

根據(jù)之前介紹的DOM的api實(shí)在太難記憶和使用繁雜 所以為了更好的調(diào)用John Resig 大神造了jquery的輪子
jquery的核心The Write Less,Do More,簡潔的API、優(yōu)雅的鏈?zhǔn)?、?qiáng)大的查詢與便捷的操作。

做一個(gè)簡單的jquery的功能
var $div = $('div')    //輸入div
$div.addClass('red')  // 可將所有 div 的 class 添加一個(gè) red
$div.setText('hi')  // 可將所有 div 的 textContent 變?yōu)?hi

1.參數(shù)傳遞

var div =('div')
要實(shí)現(xiàn)上面這個(gè)功能,我的理解是首先設(shè)置window對(duì)象jQuery為函數(shù)返回的結(jié)果,然后把參數(shù)'div'傳遞到函數(shù)內(nèi)的DOM,作為變量進(jìn)行下一步的操作。

window.jQuery=function(selector){  
let alldiv=document.querySelectorAll(selector)  
}

window.$ = jQuery

2.返回對(duì)象

div.addClass('red') // 可將所有 div 的 class 添加一個(gè) reddiv.setText('hi') // 可將所有 div 的 textContent 變?yōu)?hi
可以觀察得到$div是一個(gè)對(duì)象,它的key有addClass和setText。

那我也返回一個(gè)含有addClass和setClass的對(duì)象。

window.jQuery=function (selector){
let alldiv=document.querySelectorAll(selector)  
  return{
       addClass:function (){},
       setClass:function(){}
  }
}
window.$ = jQuery

3.補(bǔ)全對(duì)象

我們得到了alldiv,它是一個(gè)偽數(shù)組。如果每個(gè)div都要添加class的話,需要一個(gè)for循環(huán),然后每一次用DOM的方法里的classList.add功能對(duì)div添加class。
addClass: function(){
for(var i=0;i<alldiv.length;i++){
alldiv[i].classList.add("red")
}
setText: function(){
for(var i=0;i<alldiv.length;i++){
alldiv[i].textContent = "hi"
}
把a(bǔ)ddClass和setText的內(nèi)容結(jié)合到函數(shù)內(nèi),得到:

window.jQuery=function (selector){
  let alldiv=document.querySelectorAll(selector)
  return{
       addClass: function(){
               for(var i=0;i<alldiv.length;i++){
                   alldiv[i].classList.add("red")
               }
       },
       setText: function(){
               for(var i=0;i<alldiv.length;i++){
                  alldiv[i].textContent = "hi"
              }
      }
   }
}
window.$ = 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),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容