网页设计给元素一个class属性并使点击这个元素添加这个class属性点击其他元素时移除这个class属性,如果这个元素已经有这个属性点击移除
时间: 2024-03-16 11:42:17 浏览: 45
好的,我理解您的问题。您想要实现的是在网页设计中,给一些元素添加一个class属性,并且当点击这些元素时,这个class属性会被添加到该元素上,同时移除其他元素的该属性。如果这个元素已经有这个属性,再次点击时会移除该属性。下面是一个改进后的实现方式:
HTML代码:
```
<div class="box">元素1</div>
<div class="box">元素2</div>
<div class="box">元素3</div>
<div class="box">元素4</div>
```
JavaScript代码:
```
var boxes = document.querySelectorAll('.box');
for (var i = 0; i < boxes.length; i++) {
boxes[i].addEventListener('click', function() {
if (this.classList.contains('active')) {
this.classList.remove('active');
} else {
for (var j = 0; j < boxes.length; j++) {
boxes[j].classList.remove('active');
}
this.classList.add('active');
}
})
}
```
在上面的代码中,我们首先用 `querySelectorAll` 方法获取所有带有 `box` 类的元素,并将它们存储在一个数组中。然后,我们使用一个循环来遍历这些元素,并为每个元素添加一个 `click` 事件监听器。当用户点击该元素时,我们首先检查该元素是否已经拥有 `active` 类。如果是,我们就将该类从该元素中移除。如果不是,则使用另一个循环来移除所有元素的 `active` 类,然后再将该类添加到被点击的元素上。
这样,当用户点击一个元素时,它会变为 “active” 状态,如果再次点击该元素,它会恢复到未激活状态,而其他元素则会恢复到未激活状态。
阅读全文