Добавить несколько классов элементу из переменной [массива]

Например функция конструктор которая принимает три параметра : ай-ди список классов, какой-то текст

function Modal (id, classes, text) {
        this.id = id;
	this.classes = classes;
	this.text = text;

	this.render = function() {
		this.modWind = document.createElement("div");
		this.modWind.id = this.id;
		this.modWind.classList.add(this.classes);
		return this.modWind;
	}
}

const modal = new Modal("anyID", ["class1", "class2", "class3"], "modal window text");
root.append(modal.render())

сейчас получается так class=“class1,class2,class3” а должно же быть так class=“class1 class2 class3” верно ?

как правилльно принять или передать несколько классов ?

Добавляй по одному

this.classes.forEach((className) => {
    this.modWind.classList.add(className)
})
1 лайк

Есть еще вариант.

Метод .add допускает прием нескольких аргументов classList.add("class1", "class2", "class3"). Эти аргументы можно передать через спрэд операцию над массивом.

this.modWind.classList.add(...this.classes);

Выглядит почище, но требует иных знаний чем простая итерация.

1 лайк

спасибо. нашел еще такое решение передавать как массив [“class1”, “class2”] а получеть с помошью спред this.modWind.classList.add(...this.classes);

1 лайк