/** * @interface CreateElementProps * @type {Object} * @property {string} tagName - имя создаваемого тега * @property {Node} parentNode - родительский Node в который поместить элемент * @property {Object} options - опции, которые можно присвоить объекту * @property {Object} args - аргументы, которые нужно прикрепить к Node */ /** * Функция создания элементов * @function createElement * @param {CreateElementProps} createElementProps - параметры для функции * @returns {Node} */ export const createElement = (createElementProps) => { const {tagName, parentNode, options, args} = createElementProps; const element = document.createElement(tagName); if (options) { Object.entries(options) .forEach(([key, value]) => { element[key] = value; }); } if (args) { Object.entries(args) .forEach(([attr, value]) => { element.setAttribute(attr, value); }); } parentNode.appendChild(element); return element; };