JavaScript框架思想2

2021-07-15 11:05:21 字數 1887 閱讀 9038

//

封裝類(相容處理)

function

getclasses

(classname

, parent

) else }}

}return

result;};

//封裝類結束

**中也給大家作出了詳細注釋,getclasses(selector,parent)方法變化並不大,只是在得到所有標籤的時候使用了:

//1

、獲取所有元素

:document.getelementsbytagname("*")

var

tags

= gettags

("*"

, parent

);

//

統一封裝的呼叫

function

$get

(selector

,parent

)else if

(parent

.nodetype)

//都不符合條件的話,

parent

就是乙個

dom陣列

//使用迴圈遍歷

for(

var i=

0;i<

parent

.length;i++

)else if

(name=

regresult[3

])else if

(name=

regresult[4

])//

因為此時是陣列,所以使用

改變物件指向

result

.push.(

result

,singleresult);}

}}return

result

;};

**中我已經做出了詳細的注釋,接下來我們做出分解,首先我們要判斷selector的形式,也就是說選擇器是乙個字串型別,接下來,我們並沒有使用判斷各個選擇器形式的不同,而做出相關處理,而是用了正規表示式來進行匹配,正規表示式的用法這裡不做出詳細的講解,有興趣的可以上網查詢資料,當然,如果不會正規表示式的話,用我們之前的方法,判斷開頭字元的方法也行,這裡使用正則來進行講解。

我們使用正規表示式的exec()的方法進行選擇器檢測,返回的是乙個陣列,如果進行匹配到的話,我們此時就要進行判斷parent的型別,如果parent是字串的話,我們將直接呼叫$get(parent),將parent傳入,如果是乙個dom節點型別,我們就直接將讓他變成乙個陣列:

//

如果匹配到if(

regresult

)else if

(parent

.nodetype)

如果都不是前邊兩種情況的話,parent就是乙個dom陣列,我們此時就將parent進行迴圈遍歷:

for

(var i=

0;i<

parent

.length;i++

)else if

(name=

regresult[3

])else if

(name=

regresult[4

])//

因為此時是陣列,所以使用

改變物件指向

result

.push.(

result

,singleresult

);}

Javascript框架思想

js的學習中,我們總是借鑑或使用jqury,這時候學習前端的工程師們,就想自己封裝乙個,但是封裝屬於自己的框架,確實不太容易,所以,jqury使我們很好的乙個範本,所以,我i門來研究一下jqury的框架思想,同時自己也可以模仿封裝。下面我們學習,封裝選擇器的思想。首先js中的選擇器有 id選擇器,類...

Javascript框架思想

js的學習中,我們總是借鑑或使用jqury,這時候學習前端的工程師們,就想自己封裝乙個,但是封裝屬於自己的框架,確實不太容易,所以,jqury使我們很好的乙個範本,所以,我i門來研究一下jqury的框架思想,同時自己也可以模仿封裝。下面我們學習,封裝選擇器的思想。首先js中的選擇器有 id選擇器,類...

JavaScript框架思想3

在前邊幾篇文章中,我們封裝了基本的選擇器通過 get selecteor,parent 選取指定元素下的選擇器,但是並不完美,作為乙個追求完美的前段開發工程師加上與之俱來的強迫症,這些 功能,怎麼能滿足呢,下面,我們又要把這些 進行公升級,就像lol,大家都懂得哦 那麼首先我們來分析情況,引數sel...