Javascript 为什么';t`forEach.call`通过类删除迭代每个节点?;

Javascript 为什么';t`forEach.call`通过类删除迭代每个节点?;,javascript,Javascript,我正在删除forEach.call中的一个类。由于某些原因,它只调用一次,如下所示 var all\u active=document.getElementsByClassName(“active”) Array.prototype.forEach.call(全部激活,函数(el){ el.类列表。删除(“活动”); console.log(el.tagName); }); 123 1. 1. 1. 1. 1. 1. A是一个活动的元素集合。从第一个元素中删除类时,集合的长度也会减少。因此,

我正在删除
forEach.call中的一个类。由于某些原因,它只调用一次,如下所示

var all\u active=document.getElementsByClassName(“active”)
Array.prototype.forEach.call(全部激活,函数(el){
el.类列表。删除(“活动”);
console.log(el.tagName);
});
  • 123 1. 1. 1. 1. 1. 1.
  • A是一个活动的元素集合。从第一个元素中删除类时,集合的长度也会减少。因此,
    forEach()
    将结束,因为它已经处理了正确数量的元素

    ASCII说明可能有助于:

     # On first iteration:      # After first iteration:
    ┌───────────┬──────────┐   ┌──────────┬──────────┐   
    │ NodeList  │ Iterator │   │ NodeList │ Iterator │
    ├───────────┼──────────┤   ├──────────┼──────────┤
    │ li.active │   <──    │   │ a.active │          │
    ├───────────┼──────────┤   ├──────────┼──────────┤
    │ a.active  │          │   │          │    <─    │
    └───────────┴──────────┘   └──────────┴──────────┘
    
  • 123 1. 1. 1. 1. 1. 1.
  • 可能是因为您之前删除了它,所以此时元素/元素标记名未定义。请更详细地解释您的期望,或问题所在。看到和