You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
951 B
28 lines
951 B
export default function crelt() { |
|
var elt = arguments[0] |
|
if (typeof elt == "string") elt = document.createElement(elt) |
|
var i = 1, next = arguments[1] |
|
if (next && typeof next == "object" && next.nodeType == null && !Array.isArray(next)) { |
|
for (var name in next) if (Object.prototype.hasOwnProperty.call(next, name)) { |
|
var value = next[name] |
|
if (typeof value == "string") elt.setAttribute(name, value) |
|
else if (value != null) elt[name] = value |
|
} |
|
i++ |
|
} |
|
for (; i < arguments.length; i++) add(elt, arguments[i]) |
|
return elt |
|
} |
|
|
|
function add(elt, child) { |
|
if (typeof child == "string") { |
|
elt.appendChild(document.createTextNode(child)) |
|
} else if (child == null) { |
|
} else if (child.nodeType != null) { |
|
elt.appendChild(child) |
|
} else if (Array.isArray(child)) { |
|
for (var i = 0; i < child.length; i++) add(elt, child[i]) |
|
} else { |
|
throw new RangeError("Unsupported child node: " + child) |
|
} |
|
}
|
|
|