Получить элемент по классу и убрать все классы у него

Хочу получить по классу элементы и очистить их классы (этот же). Через итерацию, и такая возникла интересная проблема: Ссылка на jsfiddle

По клику на любую кнопку он по сути должен удалять со всех элементов классы, но делает это через одного и вообще непонятно как, только после 3ех нажатий очищаются все.

Пробовал:

function viewDivMag(number) { [].forEach.call(document.getElementsByClassName('chain-shop-adresses'), function(item) { item.className = 'none'; });

ничего не поменялось.

В чем проблема не пойму


Ответы (1 шт):

Автор решения: Igor

В чем проблема не пойму

Проблема в том, что getElementsByClassName возвращает "живую" (live) коллекцию. При изменении item.className = 'none'; в коллекции становится меньше элементов.

Используйте document.querySelectorAll или преобразуйте результат document.getElementsByClassName в массив

[...document.getElementsByClassName('chain-shop-adresses')].forEach(...
→ Ссылка