minimind/trainer_web/static/js/utils/dom.js

35 lines
840 B
JavaScript

export function qs(selector, scope = document) {
return scope.querySelector(selector);
}
export function qsa(selector, scope = document) {
return Array.from(scope.querySelectorAll(selector));
}
export function el(tag, attrs = {}) {
const node = document.createElement(tag);
for (const [k, v] of Object.entries(attrs)) {
if (k === 'class') node.className = v;
else if (k === 'text') node.textContent = v;
else node.setAttribute(k, v);
}
return node;
}
export function setHidden(node, hidden) {
if (!node) return;
if (hidden) node.classList.add('hidden');
else node.classList.remove('hidden');
}
export function setText(node, text) {
if (!node) return;
node.textContent = text;
}
export function clearChildren(node) {
if (!node) return;
while (node.firstChild) node.removeChild(node.firstChild);
}