Я хочу создать функцию, которая получает данные из массива и создает соответствующие теги в HTML + соответствующий аргумент. Проблема возникает, когда существует более одного аргумента.
Они образуются, но не вместе, только по отдельности.
var elem = [[
// <div class"container"></div> //Example
["div", "container"],
["form", {method: "POST", name: "contant"}], //Two objects (arguments for html)
["div", "box"]
]];
class Form {
constructor(index) {
this.index = index;
};
createField() {
for(const marker of elem[this.index]) {
if(marker[1] instanceof Object) {
for(var test of Object.keys(marker[1])) {
console.log(this.createElement(marker[0], {
[test]: marker[1][test]
}));
}
} else { //If there is no object, it adds a class
var key = 'class';
var value = marker[1]
console.log(this.createElement(marker[0], {
[key]: value
}));
}
};
};
createElement(elementName, attributes) {
this.element = this.createElement.call(document, elementName);
if(attributes && !(attributes instanceof Object)) {
throw Error('Error attributes');
} else if(attributes) {
for(const attr of Object.keys(attributes)) {
this.element.setAttribute(attr, attributes[attr]);
};
};
return this.element;
};
I хотел бы, чтобы это содержало эти два аргумента, а не создавалось дважды из одного аргумента