使用 javascript 檢查內容的特定 class 的操作方法

AWEI
Jan 18, 2023

--

我們經常在專案中會需要對某個區塊內是否含有特定 class 做檢查與操作,今天就簡單的來整理一些方法。

如何透過 javascript 檢查元素中是否含有某個 class ?

可以使用 JavaScript 的 classList 屬性來檢查元素中是否含有某個 class。

範例:

HTML
javascript

這段 HTML 定義了一個 id 為 “myParent” 的 div 元素,裡面有三個 div 元素,其中前兩個 div 元素有 class “myClass”,後一個沒有。

當你執行上面的 JavaScript 程式碼時,結果應該會顯示 “The parent element has at least one descendant with the class ‘myClass’”。

上述程式碼沒有印出任何東西

如果沒有印出任何東西,可能是 JavaScript 程式碼執行的時間點和 HTML 網頁載入的時間點不同造成的。有幾種解決方法:

  1. 使用 JavaScript 的 onload 事件,在頁面完全載入後再執行程式碼。
使用 javaScript onload 方法

2.使用 jQuery 的 $(document).ready() 方法,在頁面完全載入後再執行程式碼。

jquery 等頁面載入後再執行的寫法

那如何把含有 myClass 的元素加上黃色背景呢?

可以使用 JavaScript 的 classList.add() 方法來加上 class,並在 CSS 中定義 "myClass" class 的樣式。

範例:

JavaScript
CSS

這段程式碼會先使用 querySelectorAll() 方法找到所有含有 class "myClass" 的元素,再使用迴圈一一加上 class "yellow-bg"。在這個例子中 CSS 中的 .yellow-bg class 就會改變背景顏色。

注意,如果 HTML 中的元素已經有了背景顏色的樣式,那麼加上新的 class 樣式可能不會生效,因為後定義的樣式會被先定義的樣式覆蓋。

點擊得到的元素內如果含有 myClass 就把點擊到的元素移除寫法

可以在事件處理函數中使用 JavaScript 的 classList.remove() 方法來移除 class。

範例:

這段程式碼會在每個元素上綁定 “click” 事件,當元素被點擊時,會檢查這個元素是否含有 class “myClass”。如果有,則會使用 classList.remove() 方法移除 class。

另外,建議您可以把 CSS 的樣式放置在 class 上,而不是在 JavaScript 中修改樣式。這樣可以使程式碼更簡潔且更易於維護。

以上如果有更好的寫法,也歡迎留言或私訊進行交流喔。

--

--

AWEI

軟體工程師的前端程式筆記部落格。座右銘是『想是問題、做是答案』!