цикл за в следующем коде завершается после удаления одного класса и не удаляет другой, пока я снова не нажму кнопку
Я хочу удалить класс скрытый из двух разделов, но не хочу использовать querySelectorAll.
есть ли способ сделать это, используя цикл getElementsByClassName и за, без JQuery Просто JavaScript
Я делал то же самое раньше, но это должно было изменить стиль чего-то, чтобы не добавлять или удалять классы.
var items = document.getElementsByClassName('hidden');
let show = document.querySelector('.show-modal');
show.addEventListener('click', function(){
for (let i = 0; i < items.length; i++){
items.item(i).classList.remove('hidden');
}
});
getElementsByClassName возвращает HTMLCollection жить, что означает, что все изменения в DOM будут немедленно отражены в items. Когда вы удаляете класс из элемента, он немедленно исчезает из этой коллекции, а также изменяется длина коллекции. Это можно просто обойти, если вы перебираете коллекцию назад, а не вперед. Или используйте querySelectorAll вместо этого для начала - он возвращает статический NodeList.
@TusharShahi, я могу использовать его, но это только один элемент, и я просто использую запрос, чтобы продемонстрировать
@CBroe, как выполнить итерацию назад, я не понял?
for (let i = items.length-1; i >= 0 ; i--)@CBroe, но я не понял, почему он работает назад, а не вперед? Если у вас есть время, не могли бы вы объяснить это?
Я уже объяснял это своим первым комментарием.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Использование forEach поможет -
show.addEventListener('click', () => {
items.forEach((element) => {
element.classList.remove('hidden');
})
});
поблагодарю вас за помощь, но я хочу использовать цикл for, чтобы доказать свою точку зрения ?
Затем @AliAb используйте querySelectorAll вместо getElementsByClassName, так как последний возвращает живой список
Значит, нет способа использовать getElementsByClassName с циклом for для этого?
@AliAB, если вы выполните итерацию в обратном направлении, это сработает, но почему вы зациклены на его использовании?
это работало в обратном направлении, это был вызов между мной и моим учителем, потому что я новичок в javascript
Почему вы не можете использовать getElementsByClassName и для show-modal?