1. 程式人生 > >學會封裝自己的class類:

學會封裝自己的class類:

突然想起來自己曾經看的一本書:《Javascript_Dom程式設計藝術》
該書在前邊的章節就提出了一些操作Dom 的方法

類似:
document.getElementById:
.getElementsByTagName
.getElementsByClassName
其中有一段,說了有些瀏覽器不支援.getElementsByClassName 然後有些聰明的程式設計師就自己封裝類。當時沒看懂。。可能是我太菜的緣故。今天重新看到這裡,然後突然就明白了。
接下來,我將自己封裝一個可以獲得ClassName。

首先需要明白一個事情,即.getElementsByClassName

它在大部分瀏覽器表現良好。但是一旦到了“著名”的IE 678.它的問題就出現了。

放一個demo,方便自己測試用。

只有兩個含有class:

這裡寫圖片描述

這裡寫圖片描述

一般瀏覽器顯示正常:
這裡寫圖片描述



但是當我換成IE 7的時候 就開始出現問題 它會顯示不支援此方法 這時候便需要我們自己封裝一個。

這裡寫圖片描述
這裡寫圖片描述


那麼接下來,我們就自己動手封裝一個。如何才能獲得類名呢?

它的原理很簡單,先將所有的盒子進行遍歷,並且通過每一個盒子的className來判斷。如果相等就留下。

具體怎麼做呢?看下圖:
這裡寫圖片描述

一般瀏覽器測試結果:
這裡寫圖片描述



IE7 測試結果
這裡寫圖片描述

最終可以得到class:
這裡寫圖片描述

明天給它進行改變。當盒子不止一個class,以及它的父盒子有id怎麼辦???
時間不晚了,馬上快兩點了,那今天就到這裡吧。晚安!