欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Javascript中classList的基本使用方法

 更新時(shí)間:2023年10月31日 10:15:56   作者:小貓娃來啦  
classList 是一個(gè)非常實(shí)用的工具,可以讓我們輕松地操作元素的類名,在使用 classList 時(shí),我們可以通過 add、remove、toggle 和 contains 等方法來添加、刪除、切換和檢查類名,接下來我們詳細(xì)學(xué)習(xí)一下classList的使用方法以及相關(guān)方法,感興趣的朋友一起看看吧

前言

classList 是 JavaScript 中一個(gè)用于操作元素類名的東西,這個(gè)東西有很多好用的方法,可以讓我們輕松地添加、刪除、切換和檢查元素的類名。接下來我們詳細(xì)學(xué)習(xí)一下 classList 的使用方法以及相關(guān)方法。

一、classList 的基本使用

classList 是 Element 接口的一個(gè)屬性,其返回值是一個(gè) DOMTokenList 對象,該對象表示當(dāng)前元素的類名列表。我們可以通過以下方式來獲取一個(gè)元素的 classList:

const element = document.getElementById('myElement');
const classList = element.classList;

上述代碼中,我們首先獲取了一個(gè) ID 為 myElement 的元素,然后通過 classList 屬性獲取了該元素的類名列表。

獲取到 classList 后,我們可以使用以下方法來操作元素的類名:

add方法

add 方法用于向元素添加一個(gè)或多個(gè)類名。例如,我們可以使用以下代碼向一個(gè)元素添加一個(gè)名為 active 的類名:

element.classList.add('active');

如果需要添加多個(gè)類名,可以在 add 方法中傳入多個(gè)參數(shù),例如:

element.classList.add('active', 'visible', 'highlight');

remove方法

remove 方法用于從元素中刪除一個(gè)或多個(gè)類名。例如,我們可以使用以下代碼從一個(gè)元素中刪除名為 active 的類名:

element.classList.remove('active');

如果需要?jiǎng)h除多個(gè)類名,可以在 remove 方法中傳入多個(gè)參數(shù),例如:

element.classList.remove('active', 'visible', 'highlight');

toggle方法

toggle 方法用于在元素中切換一個(gè)類名的狀態(tài)。如果元素中已經(jīng)存在該類名,則該類名將被刪除;如果元素中不存在該類名,則該類名將被添加。例如,我們可以使用以下代碼在一個(gè)元素中切換名為 active 的類名:

element.classList.toggle('active');

我們還可以在 toggle 方法中傳入一個(gè)布爾值作為第二個(gè)參數(shù),用于指定是否強(qiáng)制添加或刪除類名。例如,以下代碼將強(qiáng)制為一個(gè)元素添加名為 active 的類名:

element.classList.toggle('active', true);

contains方法

contains 方法用于檢查元素中是否包含指定的類名。如果元素中包含該類名,則返回 true;否則返回 false。例如,我們可以使用以下代碼檢查一個(gè)元素中是否包含名為 active 的類名:
Copy

const hasActiveClass = element.classList.contains('active');

二、classList 的高級用法

除了基本的添加、刪除、切換和檢查類名的方法之外,classList 還提供了一些高級用法,可以讓我們更加方便地操作元素的類名。

replace方法

replace 方法用于替換元素中的一個(gè)類名為另一個(gè)類名。例如,我們可以使用以下代碼將一個(gè)元素中名為 oldClass 的類名替換為名為 newClass 的類名:

element.classList.replace('oldClass', 'newClass');

item方法

item 方法用于獲取元素類名列表中指定索引位置的類名。例如,以下代碼將獲取一個(gè)元素的第二個(gè)類名:

const secondClass = element.classList.item(1);

需要注意的是,索引位置從 0 開始,因此上述代碼中的 1 表示獲取第二個(gè)類名。

length用法

length 屬性用于獲取元素類名列表的長度。例如,以下代碼將獲取一個(gè)元素的類名列表長度:

const classListLength = element.classList.length;

forEach方法

forEach 方法用于遍歷元素的類名列表,并對每個(gè)類名執(zhí)行指定的操作。例如,以下代碼將輸出一個(gè)元素的所有類名:

element.classList.forEach(className => {
  console.log(className);
});

需要注意的是,forEach 方法只在現(xiàn)代瀏覽器中得到支持,如果需要兼容舊版瀏覽器,可以使用 Array.prototype.forEach 方法來代替。

三、代碼示例:

function createMenu(menuData) {
				const menuEl = document.createElement('ul');
				menuData.forEach(item => {
					const itemEl = document.createElement('li');
					const labelEl = document.createElement('span');
					labelEl.innerText = item.label;
					itemEl.appendChild(labelEl);
					if (item.children.length > 0) {
						labelEl.addEventListener('click', () => {
							if (itemEl.classList.contains('open')) {
								itemEl.classList.remove('open');
								itemEl.removeChild(itemEl.lastChild);
							} else {
								itemEl.classList.add('open');
								const submenuEl = createMenu(item.children);
								itemEl.appendChild(submenuEl);
							}
						});
					}
					menuEl.appendChild(itemEl);
				});
				return menuEl;
			}
			const menuEl = createMenu(menu);
			document.body.appendChild(menuEl);

以這段代碼為例,很顯然這是遞歸函數(shù),里面用到了classList.contains('open') classList.remove('open') classList.add('open')實(shí)現(xiàn)了動態(tài)添加刪除元素類名,而通過類名是否存在的狀態(tài)來實(shí)現(xiàn)遞歸的樹形菜單,非常精髓

四、總結(jié)

classList 是一個(gè)非常實(shí)用的工具,可以讓我們輕松地操作元素的類名。在使用 classList 時(shí),我們可以通過 add、remove、toggle 和 contains 等方法來添加、刪除、切換和檢查類名;還可以通過 replace、item、length 和 forEach 等方法來進(jìn)行更高級的操作。需要注意的是,classList 只在現(xiàn)代瀏覽器中得到支持,如果需要兼容舊版瀏覽器,可以使用其他庫或者手動操作元素的 className 屬性來代替。

到此這篇關(guān)于Javascript中classList的基本使用的文章就介紹到這了,更多相關(guān)js classList內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • bootstrap table動態(tài)加載數(shù)據(jù)示例代碼

    bootstrap table動態(tài)加載數(shù)據(jù)示例代碼

    本篇文章主要介紹了bootstrap table動態(tài)加載數(shù)據(jù)示例代碼,可以實(shí)現(xiàn)點(diǎn)擊選擇按鈕,彈出模態(tài)框,加載出關(guān)鍵詞列表,有興趣的可以了解一下。
    2017-03-03
  • 在JavaScript中使用Promise.allSettled()的方法

    在JavaScript中使用Promise.allSettled()的方法

    Promise.allSettled()是一個(gè)游戲規(guī)則改變者,讓您等待所有承諾得到解決(解決或拒絕),然后根據(jù)結(jié)果采取行動,這篇文章主要介紹了如何在JavaScript中使用Promise.allSettled(),需要的朋友可以參考下
    2023-07-07
  • JS高級運(yùn)動實(shí)例分析

    JS高級運(yùn)動實(shí)例分析

    這篇文章主要介紹了JS高級運(yùn)動,結(jié)合實(shí)例形式分析了javascript運(yùn)動框架原理、實(shí)現(xiàn)與應(yīng)用技巧,需要的朋友可以參考下
    2016-12-12
  • 原生JS實(shí)現(xiàn)京東查看商品點(diǎn)擊放大

    原生JS實(shí)現(xiàn)京東查看商品點(diǎn)擊放大

    這篇文章主要為大家詳細(xì)介紹了原生JS實(shí)現(xiàn)京東查看商品點(diǎn)擊放大,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • js實(shí)現(xiàn)圖片懶加載效果

    js實(shí)現(xiàn)圖片懶加載效果

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)圖片懶加載效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 靜態(tài)頁面html中跳轉(zhuǎn)傳值的JS處理技巧

    靜態(tài)頁面html中跳轉(zhuǎn)傳值的JS處理技巧

    這篇文章主要介紹了靜態(tài)頁面html中跳轉(zhuǎn)傳值的JS處理技巧,結(jié)合實(shí)例形式分析了HTML頁面跳轉(zhuǎn)通過URL傳遞參數(shù)的方法與javascript處理技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • 微信小程序錄音實(shí)現(xiàn)功能并上傳(使用node解析接收)

    微信小程序錄音實(shí)現(xiàn)功能并上傳(使用node解析接收)

    在我們的日常開發(fā)中經(jīng)常會遇到錄音功能,并上傳到服務(wù)器,今天小編給大家分享微信小程序錄音功能實(shí)現(xiàn)并上傳錄音文件,使用node解析接收,需要的朋友可以參考下
    2020-02-02
  • javascript自定義的addClass()方法

    javascript自定義的addClass()方法

    這篇文章主要介紹了javascript自定義的addClass()方法,通過傳參就可以實(shí)現(xiàn)樣式的添加
    2014-05-05
  • 一起來了解一下JavaScript的預(yù)編譯(小結(jié))

    一起來了解一下JavaScript的預(yù)編譯(小結(jié))

    這篇文章主要介紹了一起來了解一下JavaScript的預(yù)編譯(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 使用Javascript和DOM Interfaces來處理HTML

    使用Javascript和DOM Interfaces來處理HTML

    使用Javascript和DOM Interfaces來處理HTML...
    2006-10-10

最新評論