JacaScript
兩者都是屬性 property,但是有一些細微差異。
classList
可以用來取得元素 class
,經常搭配下列幾種方法 (method )使用:
加上class。可以添加多個 class。
移除 class
對同一個 class 名稱進行 add 和 remove 狀態的切換。若目前此 class 名稱不存在就添加;若存在就移除。
檢查指定的 class 屬性 之中是否有包含特定名稱的 class (Checks if specified class value exists in class attribute of the element)
注意:雙引號裡面的 class 名稱不可以有「點」”.”
,因為是添加在 HTML 的 class=””
裡面的內容,直接寫上名稱就好。
className
className
和 classList
乍看很相似,但是,className
是直接「覆蓋掉」、「取代掉」原有的 class ,
比較像是替元素「設置 (set)」class ,而不是添加 (add)。
className
是在等號右邊的字串雙引號裡面,放入指定的 class 名稱
Set the class attribute for an element
可以比較一下跟前面
classList
的寫法差異。
而且一樣要注意,雙引號裡面不可以有點 “.”
,直接寫上 class 名稱就好。
Get the class attribute of "myDIV"
classList
要做到 toggle ,直接搭配 toggle 方法,是對同 1 個
class 名稱,進行添加或是移除的切換,比較像是開關燈 on / off 的狀態切換。
className
要做到 toggle ,無法直接接一個 toggle 方法,是要搭配 if else 判斷式,是在 2 個
class 名稱之間切換。
MDN: Element: classList property
https://developer.mozilla.org/en-US/docs/Web/API/Element/classList
MDN: Element: className property
https://developer.mozilla.org/en-US/docs/Web/API/Element/className
W3School : HTML DOM Element classList
https://www.w3schools.com/jsref/prop_element_classlist.asp
W3School : HTML DOM Element className
https://www.w3schools.com/jsref/prop_html_classname.asp