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