Javascript HTML元素从节点列表中消失
我正在尝试使用javascript查找具有特定css的所有元素,并用另一个css替换此css。但奇怪的是,在删除css后,我的元素列表会发生变化:Javascript HTML元素从节点列表中消失,javascript,html,css,Javascript,Html,Css,我正在尝试使用javascript查找具有特定css的所有元素,并用另一个css替换此css。但奇怪的是,在删除css后,我的元素列表会发生变化: element_list[i].classList.remove( "css1" ); 功能更改\u颜色() { 调试器; var element_list=document.getElementsByClassName('css1'); 对于(变量i=0;i
element_list[i].classList.remove( "css1" );
功能更改\u颜色()
{
调试器;
var element_list=document.getElementsByClassName('css1');
对于(变量i=0;i
.css1
{
背景色:红色;
}
.css2
{
背景颜色:黄色;
}
第一组
第2组
第3组
数组长度:
原因是您首先要使用
var element_list = document.getElementsByClassName('css1');
返回一个“活动”节点列表,以便在DOM中添加或删除元素的任何点(获取列表后的事件),并且该更改将影响列表,列表将自动更新
相反,将行更改为:
var element_list = document.querySelectorAll('css1');
返回一个静态节点列表,因此它在执行该行时找到的元素也是稍后将出现在该节点列表中的元素(假设某个元素尚未从DOM中完全删除)。原因是您首先使用
var element_list = document.getElementsByClassName('css1');
返回一个“活动”节点列表,以便在DOM中添加或删除元素的任何点(获取列表后的事件),并且该更改将影响列表,列表将自动更新
相反,将行更改为:
var element_list = document.querySelectorAll('css1');
返回一个静态节点列表,因此它在执行该行时找到的元素也是稍后将在该节点列表中的元素(假设一个元素尚未从DOM中完全删除)。:问“为什么此代码不起作用?”在问题本身中必须包含:问“为什么此代码不起作用?”的问题在问题本身中必须包含。