Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何删除除单击的元素之外的所有其他元素上的类_Javascript_Events_Classname - Fatal编程技术网

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
这是最好的答案,谢谢你很高兴能帮忙!:)