Javascript getElementsByClassName异常行为,跳过某些元素
我对getElementsByClassName有一些非常奇怪的行为,我不确定是什么导致了它 如果我尝试将所有元素从类B交换到类A,它只交换某些元素,如下所示:Javascript getElementsByClassName异常行为,跳过某些元素,javascript,html,getelementsbyclassname,Javascript,Html,Getelementsbyclassname,我对getElementsByClassName有一些非常奇怪的行为,我不确定是什么导致了它 如果我尝试将所有元素从类B交换到类A,它只交换某些元素,如下所示: 函数交换类(){ //获取类B的所有元素 const classBList=document.getElementsByClassName(“classb”); 对于(var i=0;i{ div.classList.add(“classa”); div.classList.remove(“classb”); //交换文本 div.t
函数交换类(){
//获取类B的所有元素
const classBList=document.getElementsByClassName(“classb”);
对于(var i=0;i
.classa{
背景色:红色;
}
.B类{
背景颜色:绿色;
}
A类
B类
B类
B类
B类
将类B交换为类A
您可以使用querySelectorAll和classList,而不是使用getElementsByClassName获得的活动节点列表
函数交换类(){
//获取类B的所有元素
[…document.queryselectoral(“.classb”)].forEach(div=>{
div.classList.add(“classa”);
div.classList.remove(“classb”);
//交换文本
div.textContent=“A类”;
})
}
.classa{
背景色:红色;
}
.B类{
背景颜色:绿色;
}
A类
B类
B类
B类
B类
将B类交换到A类
getElementsByClassname返回一个“实时HTMLCollection”。。。因此,通过更改classElem.className=“classa”代码>更改集合-建议您使用document.querySelectorAll(“.classb”)
并避免问题-请参阅并阅读警告:p