Вы неплохо справились, но у меня есть для вас решение, которое вы должны попробовать, это сработало для меня, и это быстро и просто.Это для создания элемента и установки атрибутов.
, как вы упомянули:
Я хочу получить что-то вроде этого create('div', {'id': 'test', 'class': 'smth'});
здесьэто решение:
function create(ele, attrs) {
//create the element with a specified string:
var element = document.createElement(ele);
//create a for...in loop set attributes:
for (let val in attrs) {
//for support in the setAttrubute() method:
if (element.setAttribute) {
if (element[val] in element) {
element.setAttribute(val, attrs[val]);
} else {
element[val] = attrs[val];
}
} else {
element[val] = attrs[val];
}
}
//return the element with the set attributes:
return element;
}
Это также работает с пользовательскими атрибутами, и его свойство похоже на innerHTML
.Если вы также хотите быть уверены, что я знаю, что это работает, я протестировал его, зарегистрировал в консоли и увидел на странице HTML.Я проверял это на Firefox.
Вот Демо