Files
storage-service-ui/src/utils/elementUtils.js

35 lines
1.2 KiB
JavaScript

/**
* @interface CreateElementProps
* @type {Object}
* @property {string} tagName - имя создаваемого тега
* @property {Node} parentNode - родительский Node в который поместить элемент
* @property {Object<string, string>} options - опции, которые можно присвоить объекту
* @property {Object<string, string>} 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;
};