JSFiddle - React, Tailwind, and code Playground
JavaScript
var Element = (function (win, doc) {
var init = function () {
return this;
}
init.prototype = {
first: first,
prev: prev,
next: next,
last: last,
attr: attr,
create: create,
before: before,
after: after,
append: append,
remove: remove
};
return new init();
// Core
function first(elem) {
elem = elem || document.documentElement;
return elem && elem.nodeType === 1 ? elem.firstChild : next(elem);
};
function prev(elem) {
elem = elem || document.documentElement;
do {
elem = elem && elem.previousSibling;
}
while (elem && elem.nodeType !== 1)
return elem;
};
function next(elem) {
elem = elem || document.documentElement;
do {
elem = elem && elem.nextSibling;
}
while (elem && elem.nodeType !== 1)
return elem;
};
function last(elem) {
elem = elem || document.documentElement;
return elem && elem.nodeType === 1 ? elem.lastChild : prev(elem);
};
// 속성 가져오기/변경하기
function attr(elem, args, value) {
elem = elem || document.documentElement;
args = args || (args && args.constructor === Object ? {} : '');
value = value || '';
if (args.constructor === Object) {
for (var n in args) {
var t = { 'for': 'htmlFor', 'class': 'className'}[n] || n;
elem.setAttribute && elem.setAttribute(t, args[n]);
}
return elem;
}
else if (args.constructor === String) {
var t = { 'for': 'htmlFor', 'class': 'className'}[args] || args;
if (value) {
elem.setAttribute && elem.setAttribute(t, value);
return elem;
}
else {
return elem.getAttribute && elem.getAttribute(t) ?...