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