Применения цикла больше 1-го раза

Всем привет. Столкнулся с вопросом - как всем html элементам применить свойства из метода. Вот пример применения первому элементу, как можно преобразовать и применить всем элементам?

class Elem {

                constructor(elements) {
                    this.elements = elements;
                }
        
        attr(type, value) {
                    let elem = document.querySelector(this.elements);
                    elem.setAttribute(type, value);
                    return this;
                }
        
}

let elem = new Elem('.paragraf');

elem.attr('class', 'abc');


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

Автор решения: Roman Lytvynov

В методе attr вместо querySelector используйте querySelectorAll и результат (массив) пройдите и к каждому элементу примените нужную операцию.

class Elem {
  constructor(query) {
    this.query = query;
  }

  attr(type, value) {
    const elems = document.querySelectorAll(this.query);
    elems.forEach(el => el.setAttribute(type, value));
    return this;
  }

}

let elem = new Elem('.paragraf');

elem.attr('class', 'green');
.green {
  color: green;
}
<div class="paragraf">Тест</div>
<div class="paragraf">Тест 1</div>
<div class="paragraf">Тест 2</div>
<div class="paragraf">Тест 3</div>
<div class="paragraf">Тест 4</div>
<div class="paragraf">Тест 5</div>

→ Ссылка