Javascript JS:试图从对象数组中删除css类只会删除其中的一半
我的html中有几个DOM元素,类为“high”,我想获取所有元素,并从中删除该类,我已经尝试过了(我正在使用Chrome的控制台测试代码): 我希望第一个代码可以工作,但是现在第二个代码可以工作了,我不知道到底是怎么发生的,为什么会发生这种情况 解决了的 问题得到了回答,但对于那些有兴趣看到这个问题的人来说:Javascript JS:试图从对象数组中删除css类只会删除其中的一半,javascript,css,arrays,Javascript,Css,Arrays,我的html中有几个DOM元素,类为“high”,我想获取所有元素,并从中删除该类,我已经尝试过了(我正在使用Chrome的控制台测试代码): 我希望第一个代码可以工作,但是现在第二个代码可以工作了,我不知道到底是怎么发生的,为什么会发生这种情况 解决了的 问题得到了回答,但对于那些有兴趣看到这个问题的人来说: 这的确是一个非常合理的逻辑: 让我们想象一下下面的数组 [0, 1, 2, 3] 首先删除第0个 [1, 2, 3] [1, 3] 然后,第二步删除1-st项(这里是2),这将为您
这的确是一个非常合理的逻辑: 让我们想象一下下面的数组
[0, 1, 2, 3]
首先删除第0个
[1, 2, 3]
[1, 3]
然后,第二步删除1-st
项(这里是2
),这将为您提供
[1, 2, 3]
[1, 3]
在这里停止,删除时不应增加索引,因为所有剩余元素都向左移动。而您只删除了一半的项目。这确实是一个非常合理的逻辑:
让我们想象一下下面的数组
[0, 1, 2, 3]
首先删除第0个
[1, 2, 3]
[1, 3]
然后,第二步删除1-st
项(这里是2
),这将为您提供
[1, 2, 3]
[1, 3]
在这里停止,删除时不应增加索引,因为所有剩余元素都向左移动。并且您只删除了一半的项目。文档。GetElementsByCassName
返回一个实时HTML集合,当您迭代该集合并更改其中一些时,可能会导致问题
改用document.querySelectorAll('.high')
。它返回一个静态节点列表,您就不会有这个问题
.document.GetElementsByCassName
返回一个实时HTML集合,当您迭代该集合并更改其中一些集合时,该集合可能会导致问题
改用document.querySelectorAll('.high')
。它返回一个静态节点列表,您就不会有这个问题
.这太令人困惑了。第二个是不是跑掉了(无限循环)?因为返回的是一个活动的,因此“当底层文档被更改时,它会自动更新。”这是相当令人困惑的。第二个不是跑掉了吗(无限循环)?因为返回的是一个活动的,因此“当底层文档被更改时,它会自动更新。”我不知道是这样的,你帮我避免了很多混乱和谷歌搜索!我不知道是这样的,你把我从混乱和谷歌搜索中拯救了出来!