在JavaScript和JavaScript工具庫里征戰(zhàn)多年,我經(jīng)常有這樣的遐想:什么時候現(xiàn)代瀏覽器里能提供一些輔助方法和類庫,替代那些JavaScript工具庫,比如jQuery,讓我們用瀏覽器原生的方法替代它們。我知道瀏覽器必定會向這個方向改進(jìn),但這個進(jìn)化過程不會很迅速,而且各種瀏覽器需要共同做這樣的革新,火狐瀏覽器、谷歌瀏覽器、特別是IE,只有當(dāng)這些主流瀏覽器都具備了這樣的功能,我們的愿望才算真正的實(shí)現(xiàn)。好消息是,其中有一個這樣的功能已經(jīng)被加入到了HTML5 API里:classList。
在HTML5 API里,頁面DOM里的每個節(jié)點(diǎn)上都有一個classList對象,程序員可以使用里面的方法新增、刪除、修改節(jié)點(diǎn)上的CSS類。使用classList,程序員還可以用它來判斷某個節(jié)點(diǎn)是否被賦予了某個CSS類。
Element.classList
這個classList對象里有很多有用的方法:
XML/HTML Code復(fù)制內(nèi)容到剪貼板
- {
- length: {number}, /* # of class on this element */
- add: function() { [native code] },
- contains: function() { [native code] },
- item: function() { [native code] }, /* by index */
- remove: function() { [native code] },
- toggle: function() { [native code] }
- }
-
正如你上面看到的,Element.classList類很小,但里面的每個方法都很有用。
新增CSS類
使用add方法,你可以往頁面元素是新增一個或多個css類:
myDiv.classList.add('myCssClass');
刪除一個CSS類
使用remove方法,你可以刪除單個CSS類:
myDiv.classList.remove('myCssClass');
你可以在這個方法里一次傳入多個類名,用空格分開,但執(zhí)行的結(jié)果很有可能不是你預(yù)期的。
反轉(zhuǎn)CSS類的有無
myDiv.classList.toggle('myCssClass'); //現(xiàn)在是增加
myDiv.classList.toggle('myCssClass'); //現(xiàn)在是刪除
這個方法的作用就是,當(dāng)myDiv元素上沒有這個CSS類時,它就新增這個CSS類;如果myDiv元素已經(jīng)有了這個CSS類,它就是刪除它。就是反轉(zhuǎn)操作。
檢查是否含有某個CSS類
myDiv.classList.contains('myCssClass'); //returns true or false
目前所有的現(xiàn)代瀏覽器(火狐瀏覽器,谷歌瀏覽器等)都支持這個classList類,所以,相信新型的javaScript類庫里都會使用classList類來操作頁面CSS類,而不需像以前一樣去分析元素節(jié)點(diǎn)的class屬性!
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。