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
是一个实时集合,而不是快照。非常感谢。