Skip to content

Instantly share code, notes, and snippets.

@shunz19
Created May 19, 2020 05:35
Show Gist options
  • Select an option

  • Save shunz19/519ce8929a09488fdd11b2d03f73283e to your computer and use it in GitHub Desktop.

Select an option

Save shunz19/519ce8929a09488fdd11b2d03f73283e to your computer and use it in GitHub Desktop.
function SDOM(mainElement = document.createElement("div")) {
function dom(dom = document.createElement("div")) {
this.domElement = dom;
}
dom.prototype.add = function(element) {
if(element.domElement) {
this.domElement.appendChild(element.domElement);
}
}
dom.prototype.remove = function(element) {
try {
this.domElement.removeChild(element);
}
catch(e) {
throw e;
}
}
dom.prototype.applyAttributes = function(attributes = {}) {
for(var key in attributes) {
this.domElement.setAttribute(key,attributes[key]);
}
return this;
}
this.dom = dom;
this.domElement = new dom(mainElement);
}
SDOM.prototype.form = function() {
var dom = this.element("form");
return dom;
}
SDOM.prototype.input = function(data = {}) {
var dom = this.element("input");
dom.applyAttributes(data);
return dom;
}
SDOM.prototype.element = function(name, data = {}) {
return new this.dom(document.createElement(name)).applyAttributes(data);
}
SDOM.prototype.header = function(name, data = {}) {
var dom = this.element("div");
dom.domElement.innerHTML = name;
dom.domElement.className = "s-hdr";
dom.applyAttributes(data);
return dom;
}
SDOM.prototype.list = function(name, data = {}) {
var dom = this.element("div");
dom.add(this.header(name));
dom.domElement.className = "s-lst";
dom.applyAttributes(data);
return dom;
}
SDOM.prototype.flex = function(data = {}) {
var dom = this.element("div");
dom.domElement.className = "s-flx";
dom.applyAttributes(data);
return dom;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment