Javascript 如何从包含多个元素和类的div容器中删除一个css类?

Javascript 如何从包含多个元素和类的div容器中删除一个css类?,javascript,html,css,Javascript,Html,Css,我想得到属于两个不同类的所有元素,并分别从这些元素中删除和添加这些类。我试过: .concealed { display: none; } .slide { background: #333; color: #fff; } //myText myText myText_2 myText_3 // var slides = document.getElementsByClassName('slide'); // var slides = document.queryS

我想得到属于两个不同类的所有元素,并分别从这些元素中删除和添加这些类。我试过:

.concealed {
  display: none;
}
.slide {
  background: #333;
  color: #fff;
}
//myText
myText
myText_2
myText_3

    // var slides = document.getElementsByClassName('slide');
    // var slides = document.querySelectorAll('.slide, .concealed');
       var slides = document.getElementsByClassName('slide concealed');

slides[0].classList.remove("concealed");
正如您所看到的,我尝试了几种方法来实现这一点,但我只能在执行var slides=document.getElementsByClassName(“隐藏”)时删除并添加“隐藏”。当使用多个类名执行getElementsByClassName时,它似乎忽略了隐藏,而只获得幻灯片。例如,制作幻灯片[0]。类列表。删除(“隐藏”);在document.getElementsByClassName('slide hidden')之后;没有效果

我确信我遗漏了一些东西,这不会那么难实现。有什么想法吗?谢谢

问题在于,这是一个实时的
HTMLCollection
。如果某个元素不再匹配(因为您已删除该类),则该元素将从集合中删除:

const list=document.getElementsByClassName(“示例”);
console.log(list.length);//2.
console.log(列表[0].innerHTML);//“A”
列表[0].classList.remove(“示例”);
console.log(list.length);//1.
console.log(列表[0].innerHTML);//“B”
A

B
“…并分别从这些元素中删除和添加这些类…”恐怕我不太明白您试图用这些元素做什么。您使用
querySelectorAll
注释掉的代码应该可以工作,但看起来好像不行。在尝试
var slides=document.queryselectoral('.slide,.hidden')之后,您能给我们提供更多信息吗我注意到
幻灯片。长度
是我元素的双重计数,并假设这不可能是正确的。似乎我需要了解节点列表处理;)问题确实在于
getElementsByCassName
是一个实时集合,而不是快照。非常感谢。