怎么使用HTML5的 classList API操作CSS類
作為前端工程師,我們經(jīng)常需要根據(jù)用戶與頁(yè)面上的元素的交互來(lái)更改CSS樣式。如果你接觸過 jQuery,相信對(duì) hasClass(), addClass(),removeClass() 這些方法不陌生。
幸運(yùn)的是,HTML5提供了一種原生的方式來(lái)實(shí)現(xiàn)這些效果,而不再需要jQuery。
目前主流瀏覽器均已支持 classList API,對(duì)于 IE 11之前的版本需要借助于兼容庫(kù)。
什么是classList API?
HTML5 classList API為我們提供了一種方法來(lái)獲取一個(gè)DOM元素的class屬性,并且可以使用JavaScript來(lái)修改它們。
在一個(gè)元素上查詢它的 classList屬性會(huì)返回一個(gè)DOMTokenList集合。它包含了應(yīng)用于當(dāng)前元素的所有類,以及l(fā)ength屬性,length屬性表示該元素上的類的數(shù)目。
我們看看這個(gè)例子:

在瀏覽器中執(zhí)行上述代碼,會(huì)看到如下輸出:

獲取一個(gè)元素所有的CSS類很簡(jiǎn)單,但是不是特別有用,我們需要一種方式來(lái)管理和更新這些類。classList 提供了幾個(gè)方法來(lái)幫我們實(shí)現(xiàn)這些功能:
add():增加指定的類
remove():刪除指定的類
contains():檢查指定的類是否存在于某個(gè)元素中
toggle():切換指定的類
index():返回列表中指定位置的類
length:返回類的數(shù)量
讓我們逐個(gè)了解一下。
增加類
為一個(gè)元素增加一個(gè)CSS類很簡(jiǎn)單。只需要把類名作為參數(shù)傳遞到 add() 方法即可。注意如果此類名已經(jīng)存在于元素上,則不會(huì)再次添加。

要增加多個(gè)類,以多個(gè)參數(shù)形式傳值:

刪除類
要?jiǎng)h除一個(gè)類,你只需要把類名作為參數(shù)傳給 remove() 方法即可。如果類名不存在于classList中,則什么都不會(huì)發(fā)生。

要?jiǎng)h除多個(gè)類,以多個(gè)參數(shù)傳給 remove方法:

檢查一個(gè)類是否存在
使用 contains() 方法,可以可以檢查一個(gè)指定的類是否存在于元素的 classList 中,然后可以根據(jù)返回值執(zhí)行一些操作。
例如:

切換類名
根據(jù)用戶的行為來(lái)增加或者刪除一個(gè)類,這是一個(gè)常見的需求。在 classList API中提供了 toggle() 方法來(lái)實(shí)現(xiàn)這個(gè)功能。

檢查類的數(shù)量
想要知道有多個(gè)類應(yīng)用到了一個(gè)元素上,可以使用 length 屬性:

總結(jié)
如上所示,HTML5 的 classList 簡(jiǎn)單易用。如果你的項(xiàng)目不需要兼容舊瀏覽器,可以根據(jù)項(xiàng)目實(shí)際情況直接使用 classList API提供的方法,可以簡(jiǎn)化你的代碼。
本文鏈接:http://m.jmtianhui.com/news/details-12-223.html
版權(quán)聲明:
1:本站所有內(nèi)容均由互聯(lián)網(wǎng)收集整理、上傳,并且以計(jì)算機(jī)技術(shù)研究交流為目的,僅供大家參考、學(xué)習(xí),不存在任何商業(yè)目的與商業(yè)用途,如描述有誤或者學(xué)術(shù)不對(duì)之處歡迎及時(shí)提出,不甚感謝。
2、 如涉及版權(quán)問題,請(qǐng)聯(lián)系我們4724325@qq.com第一時(shí)間處理;
我們從以下三個(gè)方面,對(duì)比純靜態(tài)和偽靜態(tài)兩種靜態(tài)頁(yè)面生成方式,逐一展開分析。
用JS的正則表達(dá)式如何判斷輸入框內(nèi)為中文或者是英文數(shù)字,或者是三者混編
css制作扇形
純CSS3文字Loading動(dòng)畫特效
PhpStorm 2022.1 EAP 3 在 PHPDoc 和屬性中添加了對(duì)多行和嵌套數(shù)組形狀的完全支持:在這種情況下,可以使用數(shù)組形狀注釋定義數(shù)組結(jié)構(gòu),以獲得鍵的代碼補(bǔ)全并推斷值的類型。
PHP作為Web界第一大語(yǔ)言近年來(lái)熱度不夠,但是這幾年的進(jìn)步和成長(zhǎng)卻沒有中斷。在2022伊始,我們來(lái)一起學(xué)習(xí)一下目前PHP的現(xiàn)狀以及最新版本帶來(lái)的特性。
Linux程序前臺(tái)后臺(tái)切換:在Linux終端運(yùn)行命令的時(shí)候,在命令末尾加上 & 符號(hào),就可以讓程序在后臺(tái)運(yùn)行Ubuntu$">root@Ubuntu$ ./tcpserv01 &
Python 的正則表達(dá)式支持 多行模式,將每行文字分別匹配。然而各種操作系統(tǒng)里,換行符的表示法各不相同,會(huì)導(dǎo)致 Python 不能正確使用多行模式。