推荐答案
function toggleClass(element, className) { if (element.classList.contains(className)) { element.classList.remove(className); } else { element.classList.add(className); } }
本题详细解读
题目要求
实现一个函数 toggleClass(element, className)
,用于切换 DOM 元素的类名。如果元素已经拥有该类名,则移除它;如果没有,则添加该类名。
实现思路
- 检查类名是否存在:使用
element.classList.contains(className)
方法检查元素是否已经拥有该类名。 - 添加或移除类名:
- 如果类名存在,使用
element.classList.remove(className)
移除该类名。 - 如果类名不存在,使用
element.classList.add(className)
添加该类名。
- 如果类名存在,使用
代码解析
element.classList.contains(className)
:该方法返回一个布尔值,表示元素是否包含指定的类名。element.classList.remove(className)
:该方法从元素的类列表中移除指定的类名。element.classList.add(className)
:该方法向元素的类列表中添加指定的类名。
示例
<div id="myElement" class="initial-class"></div> <script> const element = document.getElementById('myElement'); toggleClass(element, 'new-class'); console.log(element.className); // 输出: "initial-class new-class" toggleClass(element, 'new-class'); console.log(element.className); // 输出: "initial-class" </script>
在这个示例中,toggleClass
函数会切换 myElement
元素的 new-class
类名。第一次调用时,new-class
被添加到类名列表中;第二次调用时,new-class
被移除。