Javascript 如何删除除单击的元素之外的所有其他元素上的类
您好,我想删除所有其他元素上的类,单击的元素除外 到目前为止,我的代码看起来像这样,但我找不到解决方案Javascript 如何删除除单击的元素之外的所有其他元素上的类,javascript,events,classname,Javascript,Events,Classname,您好,我想删除所有其他元素上的类,单击的元素除外 到目前为止,我的代码看起来像这样,但我找不到解决方案 const elements = document.querySelectorAll(".element"); function toggleOpen() { this.classList.toggle('open'); elemets.forEach(ele => { ele.classList.remove('open'); // buts this
const elements = document.querySelectorAll(".element");
function toggleOpen() {
this.classList.toggle('open');
elemets.forEach(ele => {
ele.classList.remove('open'); // buts this removes the class from all
the elements I am looking for something that removes the class on just
the other one element containing the class except on the clicked one.
})
}
elements.forEach(ele => ele.addEventListener('click', toggleOpen));
非常接近,只需在forEach循环中使用
if
子句,通过与this
进行比较,跳过您单击的元素即可,此外,函数中还有一个输入错误:
const-elements=document.querySelectorAll('.element');
函数toggleOpen(){
this.classList.toggle('open');
elements.forEach(ele=>{
如果(ele!==此)ele.classList.remove('open');
});
}
elements.forEach(ele=>ele.addEventListener('click',toggleOpen))代码>
.element{color:red;}
.open{color:green;}
1
2.
3.
4
element.classList.add(“打开”);对于每个这个.classList.add(“open”)代码>在forEach循环之后。还有一个输入错误:elemets
这是最好的答案,谢谢你很高兴能帮忙!:)