event.target.classList
时间: 2024-05-15 08:13:05 浏览: 114
event.target.classList 是一个 DOM API 中的属性,用于获取事件触发元素的 class 列表。它返回一个类数组对象,可以使用其中的方法进行 class 的添加、删除和切换。常见的方法有:
- add(className):添加一个 class
- remove(className):删除一个 class
- toggle(className):如果元素有指定的 class,则删除它;如果没有,则添加它
例如,可以使用以下代码来为点击事件添加或删除一个 class:
```javascript
document.addEventListener('click', function(event) {
event.target.classList.toggle('active');
});
```
当点击一个元素时,如果它已经有了名为 "active" 的 class,则该 class 会被删除;如果没有,则会被添加。
相关问题
document.querySelector(".checkbox_nav").onclick = function (event){ //let e = event || window.event; // let tar = event.target ||event.srcElement; if(event.target.classList.cotains("child")) { event.target.classList.add("show") } } 帮我找出错误
在段代码中,有两个错误:
1. 第二行代码的注释符号//没有关闭,导致后面的代码都被注释了。应该在代码结尾处加上一个分号。
2. 在第5行代码中,classList.cotains("child")这个语句中,cotains应该是contains,因此需要修改这个拼写错误。
下面是修改后的代码:
```js
document.querySelector(".checkbox_nav").onclick = function(event) {
// let e = event || window.event;
// let tar = event.target ||event.srcElement;
if (event.target.classList.contains("child")) {
event.target.classList.add("show");
}
};
```
修改后的代码中,注释符号已经被关闭,而且contains的拼写错误已经被修正。另外,我还将代码中的两行注释注释掉了,因为它们没有被使用。
“document.addEventListener("click", function (event) { if (event.target.classList.contains("box-in-button")) { event.target.style.backgroundColor = "transparent"; event.target.innerHTML = "已关注"; event.target.style.backgroundColor = "rgba(0,0,0,.1)"; } }); ”这个代码可以优化吗?你认为这段代码如何?
这段代码可以进行一些优化。首先,我们可以将样式更改集中在一个类中,而不是在JavaScript中直接更改。这样做可以使代码更易读和维护。另外,我们可以使用事件委托,将事件监听器添加到父元素上,从而减少事件监听器的数量。
以下是优化后的代码示例:
HTML:
```html
<button id="parent-box" class="box">
<span class="box-in-button">关注</span>
</button>
```
CSS:
```css
.box-in-button {
background-color: transparent;
}
.box-in-button.followed {
background-color: rgba(0,0,0,.1);
}
```
JavaScript:
```javascript
document.getElementById("parent-box").addEventListener("click", function (event) {
if (event.target.classList.contains("box-in-button")) {
event.target.classList.add("followed");
event.target.innerHTML = "已关注";
}
});
```
优化后的代码使得样式更易于管理,并减少了事件监听器的数量。
阅读全文