Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.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 HTML元素从节点列表中消失_Javascript_Html_Css - Fatal编程技术网

Javascript HTML元素从节点列表中消失

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

我正在尝试使用javascript查找具有特定css的所有元素,并用另一个css替换此css。但奇怪的是,在删除css后,我的元素列表会发生变化:

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中完全删除)。

:问“为什么此代码不起作用?”在问题本身中必须包含:问“为什么此代码不起作用?”的问题在问题本身中必须包含。