newElement = function (spec) { var tagName = spec[0]; var children = spec[1]; var properties = spec[2]; var element = document.createElement(tagName); for (var i = 0; i < children.length; i++) { element.appendChild(newElement(children[i])); } return element; } spec = ['div', [], {}] document.body.appendChild(newElement())